如何捕捉表格的一部分

时间:2012-05-17 13:01:54

标签: c# windows winforms screenshot

我想捕获部分表单并在位图变量中绘制...
当我使用drawToBitmap()函数并设置rectangle(12,40,...)时,该函数只从表格的0点开始捕获。
那么我该怎么做才能解决这个问题呢? 坦克为你提供帮助

Bitmap bmp = new Bitmap(((int)maxWidth)+2, ((int)maxHeight)+2);
this.DrawToBitmap(bmp,new Rectangle(0,40,((int)maxWidth)+2, ((int)maxHeight)+2));

1 个答案:

答案 0 :(得分:2)

好的,我在这里所做的是创建了一个新表格并添加了一个按钮和一个图片框。当您单击该按钮时,它会从表单中剪切出一个矩形并将其绘制到图片框中。

我使用-100,0将图像向左移动100个像素。

 private void button1_Click(object sender, EventArgs e)
    {
        //The image we will be drawing on then passing to picturebox
        Bitmap bmp=new Bitmap(pictureBox1.Width,pictureBox1.Height);

        using (Graphics g=Graphics.FromImage(bmp))
        {
            using (Bitmap b = new Bitmap(this.Width, this.Height))
            {
                //captures the Form screenschot, and saves it into Bitmap b
                this.DrawToBitmap(b, new Rectangle(0, 0, this.Width, this.Height));

                //this draws the image from Bitmap b starting at the specified location to Bitmap bmp 
                g.DrawImageUnscaled(b, -100, 0);
            }
        }
        //this assigns pictureBox1 the bmp Bitmap.
        pictureBox1.Image = bmp;
    }