日期:2014-05-18  浏览次数:22106 次

C# gdi+清除所绘的图
我将一张图片绘到了panel1上
并设为panel1的背景图片

我在panel1上画了几个圆形
现在如何将这些圆形一次性都清除

------解决方案--------------------
如果是用
Graphics myPic = this.panel1.CreateGraphics();
Bitmap myBit = new Bitmap("a.bmp", false);
myPic.DrawImage(myBit, 0, 0,300,300);
这种方法绘制的话,可以直接 panel1.Refresh();
------解决方案--------------------
mark
------解决方案--------------------
e.Graphics.Clear();
------解决方案--------------------
如果你的画圆是在panel的paint方法中写死了的,就没办法了,因为每次panel被刷新都要执行那些语句,又会重新画出来

你看看这个,希望能对你有所帮助

http://blog.csdn.net/LorenLiu/archive/2008/12/25/3600063.aspx
------解决方案--------------------
blog.csdn.net/dunao
在这里寻找答案 吧!
------解决方案--------------------
Bitmap bgBMP=new Bitmap("a.bmp", false);

Graphics myPic = this.panel1.CreateGraphics();
Bitmap myBit = new Bitmap(bgBMP);

myPic.DrawImage(myBit, 0, 0,300,300); 

清空的时候重新画一下就可以了

主要是将背景图独立保存不要直接在上面画。。。
------解决方案--------------------
探讨
Bitmap bgBMP=new Bitmap("a.bmp", false);

Graphics myPic = this.panel1.CreateGraphics();
Bitmap myBit = new Bitmap(bgBMP);

myPic.DrawImage(myBit, 0, 0,300,300);

清空的时候重新画一下就可以了

主要是将背景图独立保存不要直接在上面画。。。

------解决方案--------------------
在画图中主要是要理解哪些画好了,哪些是要重绘的,如果用鼠标拖动绘图,则需要把目标图片和绘画过程中的图片分开区别的。用panel画图对于细节的操作不是很容易,并且会出现闪屏。建议用一个pictureBox作为画板,上面可以用Bitmap作为画布,设置为双缓冲。画布可以放很多,对于绘图就方便多了,gdi+是个不好弄的东西,我也是前些日子刚做了这方面一些东西,建议楼主查一些该方面资料