c#位图到picturebox中

本文关键字:picturebox 位图 | 更新日期: 2023-09-27 18:21:39

`

    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不能。此外,断点1有效,但断点2从未到达,

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

c#位图到picturebox中

位图是一个类,它是一种引用类型。当您处置bitmap时,您也处置了r。如果您想在处理bitmap时继续使用r,请考虑使用类似Bitmap.Clone.的东西