C#如何拖放动态创建的矩形

时间:2015-10-07 06:48:30

标签: c# .net winforms user-controls

在我UserControl中,您可以通过点击添加Rectangles。这些矩形保存在List中。现在我想让用户移动那些绘制的Rectangles。 首先,我尝试将MouseDownMouseMoveMouseUp事件添加到Rectangle,但这不起作用,因为绘图矩形是结构而不是控件。我已经完成了一个Testproject并完成了移动我在Designer的UserControl中输入的按钮。我尝试了从Drag and Drop Function with Drawing Rectangle C# .net - Forms得到的代码,但这个例子不是关于矩形的。这是关于控件,我不知道如何将这个想法用于矩形,因为

rectangle.MouseDown += delegate(object sender, MouseEventArgs e)
{
  //do something
}

不起作用。任何想法如何拖放动态添加的矩形?

1 个答案:

答案 0 :(得分:0)

您应该将MouseDown事件添加到UserControl。然后循环遍历列表并创建一个方法以查看坐标是否在Rectangle内。如果是,则挂钩并移动它。

因此,您应该添加bool值,该值在true事件中设置为MouseDown,并在false事件中设置为MouseUp。然后在MouseMove事件中,检查mouseDown值是否为true。如果是,并且找到Rectangle,请移动它的位置。