日期:2014-05-19  浏览次数:20843 次

如何让画出的线不重绘
我有两个按钮,一个按钮需要画图   另外一个需要打开一个对话框。当我打开对话框的时候第一个按钮所画的图形就不见了   。望给出解决办法。注:
这个图是动态生成的。如果放在paint里,就不能实现所需的效果
需要画图的按钮,其中部分代码如下:
                                if   (splitResult[0]   ==   "ob ")         //判断是否是障碍物的相关设置信息
                                {
                                        Graphics   grfx   =   this.CreateGraphics();
                                        grfx.DrawLine(new   Pen(Color.Red,   3),   Convert.ToUInt16(splitResult[1]),   Convert.ToUInt16(splitResult[2]),   Convert.ToUInt16(splitResult[3]),   Convert.ToUInt16(splitResult[4]));
                                        grfx.Dispose();

                                }


------解决方案--------------------
SetStyle(...........)就行了
------解决方案--------------------
创建继承自Button的新类比较好
------解决方案--------------------
代码放到paint里没有什么不可以!

当需要立刻绘制的时候调用this.Invalidate()方法就可以了.
------解决方案--------------------
你使用this.CreateGraphics();
建立的图像,并不会自动的响应Paint的系统消息,它只会画一次,你最好写到Paint事件里,或重写写OnPaint事件,如果需要立刻刷新图像,可可以调用Control.Invalidate()方法或其适合的任何一个重载函数.
------解决方案--------------------
什么叫 "重新设置 "?

有这么复杂吗?
------解决方案--------------------
建議創建一個內存bitmap,畫到bitmap上,然后把bitmap畫到窗體