2015-10-07 76 views
1

UserControl我做了可以通過點擊添加Rectangles。這些矩形保存在列表中。現在我想讓用戶可以移動繪製的那些Rectangles。 首先,我嘗試將MouseDown,MouseMoveMouseUp事件添加到Rectangle,但這不起作用,因爲繪製矩形是一個Struct而不是控件。我已經做了一個測試項目,並完成了移動一個按鈕,我把它放在用戶控制由設計師。我試着從Drag and Drop Function with Drawing Rectangle C# .net - Forms得到的代碼,但這個例子不是關於矩形。它是關於控制,我不知道怎麼用這個理念爲矩形,因爲C#如何拖放動態創建的矩形

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

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

+0

您應該將MouseDown事件添加到UserControl。然後遍歷列表並製作一個方法來查看座標是否在Rectangle中。如果是,然後鉤住並移動它。 – kevintjuh93

+0

所以你應該添加一個'bool'值,它在'MouseDown'事件中被設置爲'true',並且在'MouseUp'事件中被設置爲'false'。然後在'MouseMove'事件中,檢查'mouseDown'值是否爲'true'。如果是,找到一個「矩形」,移動它的位置。 – kevintjuh93

+0

@ kevintjuh93謝謝!我沒有想過將MouseDown事件添加到UserControl。現在,它的作品:)如果你希望你可以評論相同,因爲你在這裏寫評論,所以我可以標記這是最好的答案。 – anastasia2

回答

0

您應該將MouseDown事件添加到UserControl。然後遍歷列表並製作一個方法來查看座標是否在Rectangle之內。如果是,然後鉤住並移動它。

所以,你應該添加一個bool值,被設置爲trueMouseDown事件中,並設置爲falseMouseUp事件中。然後在MouseMove事件中,檢查mouseDown值是否爲true。如果是,找到一個Rectangle,移動它的位置。