日期:2014-05-20  浏览次数:20935 次

GDI+ 画的线,怎么才不被覆盖掉?
不常用GDI+,现在的问题是:
我在panel里使用                        
                        Graphics   myGraphics;
                        myGraphics   =   this.CreateGraphics();
                        Pen   myPen   =   new   Pen(Color.Blue,   2);
                        Rectangle   myRectangle   =   new   Rectangle(0,   0,   20,   20);
                        myGraphics   .DrawRectangle(myPen,   myRectangle);
动态的画个矩形,
但是每当我切换窗体,画好的图形都被擦掉了,(像橡皮擦擦的似的),而且任何其他窗口程序例如我开的一个winamp播放器在这个画好的winform上滑过,也能把线擦掉,请问如何才能保留我画的线呢?
直到我想
myGraphics   .Clear(Color.White);
为止

------解决方案--------------------
需要重画吧
放在Paint事件代码里面
------解决方案--------------------
在OnPaint中,还可以画在内存中的bmp里,然后存在Image中
------解决方案--------------------
必须重画 在OnPaint事件里 楼主看一下Windows基本原理吧

------解决方案--------------------
是的,override OnPaint事件
------解决方案--------------------
override 绘图区域的onPaint 事件
把绘图代码放在新的onPaint事件处理程序中,用双缓冲贴图。