如何让画出的线不重绘
我有两个按钮,一个按钮需要画图 另外一个需要打开一个对话框。当我打开对话框的时候第一个按钮所画的图形就不见了 。望给出解决办法。注:
这个图是动态生成的。如果放在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畫到窗體