【发布时间】:2014-08-04 08:38:48
【问题描述】:
我如何画一条线并为其分配事件?我想绘制一个自定义形状,但它应该像普通控件一样,并且具有属性和事件。例如:
button1_Click(object sender, EventArgs e)
{
DrawLine(width, height, location, location, color, panelToDrawShapeOn, nameThisShape);
}
nameThisShape_Click(object sender, EventArgs e)
{
MessageBox.Show("Click event raised.");
}
private void DrawLine(int width, int height, int location, int location, Color color, Panel panel, string controlName)
{
// Code to draw shape and setup events for it.
}
确认一下,我确实知道如何使用 GDI+ 绘制形状,但问题是,它们是静态的,我无法与它们“交互”,没有多少搜索让我找到了正确的地方如何与我绘制的形状进行交互。
【问题讨论】:
-
直接的解决方案是实际使用控件。如果你想要一个更轻量级的解决方案,你将不得不做很多额外的工作,尤其是在规划方面;这些“虚拟控件”或“绘制对象”必须共享其父图形;您将必须找到一种方法来测试它们的列表,注意 z 顺序等。可能,但不是一件小事..
标签: c# .net winforms drawing gdi