如何释放c#中图形对象所使用的bmp控件?

如何释放c#中图形对象所使用的bmp控件?,c#,graphics,C#,Graphics,我有这个密码 Bitmap bmp1, bmp2, bmp3,bmp4; Graphics gp2,gp3; if (bmp2 == null) { bmp2 = new Bitmap(pictureBox1.Height, pictureBox1.Width); } gp2 = Graphics.FromImage(bmp2)

我有这个密码

Bitmap bmp1, bmp2, bmp3,bmp4;

        Graphics gp2,gp3;



if (bmp2 == null)
                {
                    bmp2 = new Bitmap(pictureBox1.Height, pictureBox1.Width); 
                }
                    gp2 = Graphics.FromImage(bmp2);

                   // Rectangle rect = new Rectangle((float)(pictureBox1.Width / 2),(float)(pictureBox1.Height / 2),width, height);
                    gp2.DrawImageUnscaled(bmp1,0,0);
                    gp2.FillEllipse(Brushes.Red, (float)(pictureBox1.Width / 2), (float)(pictureBox1.Height / 2), width, height);


                    gp2.Dispose();
但是我无法释放对gp2的控制,因为我想把它的控制权交给gp3


需要帮助吗?

我认为您应该能够处理
图形
,然后再次调用
Graphics.FromImage
。我不相信处理
图形
会处理底层的
位图
。你试过了吗?

@moon:什么例外?它是可复制的吗?你能提供一个简短但完整的程序来演示这个问题吗?它在Application.Run(newform1())中抛出异常;这就是当前在其他地方使用的对象。@moon:没有更多的堆栈跟踪了吗?隐马尔可夫模型。。。和以前一样,一个简短但完整的程序在这里真的很有帮助。。。