【发布时间】:2016-04-08 17:38:11
【问题描述】:
我有一个透明图像可以在名为Hex 的控件上绘制。我把它放在Form1 上,并有一个名为Map 的生成器。
在Paint(object, PaintEventArgs) 的Hex 下我绘制图像:
e.Graphics.DrawImage(foo.Properties.Resources.h, ClientRectangle);
但它不断地从其他控件重新绘制表面:
我怎样才能避免这种情况?
Hex和Map的代码:http://pastebin.com/XsjKc3Yf
【问题讨论】:
-
共享其余代码,例如控件的构造函数。不清楚你现在在问什么。当前图像的哪一部分是其他控件的重绘?您的控件是否负责绘制单个六边形?
-
CreateGraphics 几乎总是一个错误。使用容器的绘制事件并从那里使用 Graphic 对象。由于您的控件是重叠的,因此如果没有针对每个十六进制的控件,这会更好。
-
不,我尝试了其他方法,但它显然不起作用。我有一些其他的线xD
-
查看我的新答案;我误读了这个问题..
-
您正在使用矩形进行绘画。您可能需要改用FillPolygon。
标签: c# winforms graphics controls