我如何绘制一条线并将事件分配给它?我想绘制一个自定义的形状,但它应该像一个正常的控制,并具有属性和事件。例如:将事件分配给自定义绘制形状
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-order等。可能,但不是小的壮举。 – TaW