c#位图进入图片框

时间:2015-11-12 19:17:10

标签: c# bitmap using

`

    public Bitmap catchFullScreen()
    { Bitmap r = new Bitmap(SystemInformation.VirtualScreen.Width ,SystemInformation.VirtualScreen.Height);
        Rectangle bounds = new Rectangle (0,0,SystemInformation.VirtualScreen.Width ,SystemInformation.VirtualScreen.Height);
        using (Bitmap bitmap = new Bitmap(SystemInformation.VirtualScreen.Width ,SystemInformation.VirtualScreen.Height))
        {
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
                r = bitmap;
                pictureBox1.Image = r;
                pictureBox1.Update();
                pictureBox1.Refresh();
            }
            pictureBox2.Image = r; // breakpoint 1 
            pictureBox2.Update();  // breakpoint 2
            pictureBox2.Refresh();
        }
        pictureBox3.Image = r;
        pictureBox3.Update();
        pictureBox3.Refresh();
        return r;
    }

` 这是我的截图,但是有些奇怪的事情发生了,picturebox1和2能够捕获,但是picturebox3没有。  更进一步,breakpoint1工作但breakpoint2永远不会到来,

为什么我在使用例程之后不能使用这个位图? 更重要的是它不会返回r? 建议请!

1 个答案:

答案 0 :(得分:3)

Bitmap是一个类,它是一个引用类型。当您处置bitmap时,您也会处置r。如果您想在处置r时继续使用bitmap,请考虑使用Bitmap.Clone之类的内容。