2013-02-26 55 views
0

我正在使用C#在Windows窗體項目中使用groupbox作爲容器並向其中添加項(LabelspictureBoxes ...)。我想知道是否可以在此控件上實現拖放事件以使用鼠標移動項目,或者如果必須在添加到我的groupBox的控件中實現此事件。在組盒子中拖拽

+0

檢查本教程的http:/ /vicky4147.wordpress.com/2007/02/04/a-simple-drag-drop-in-winforms/ – Zaki 2013-02-26 12:13:20

+0

嗨Sam1,謝謝你的代碼示例。我的情況有點不同。我的控件已經在組框中。 – brunoviske 2013-02-26 15:48:45

+0

@brunoviske你可以請添加一些代碼你想做什麼? – Shrivallabh 2013-02-27 10:09:06

回答

0

這段代碼是用來複制一個控件(在這裏我們已經完成了Button的操作,你可以通過改變Button類到DragDrop事件中的任何其他類)到一個groupbox。

首先將Groupbox的「AllowDrop」屬性設置爲true。

groupBox5.AllowDrop=true; 

從屬性窗口創建GROUPBOX一個 「dragEnter事件」 事件

private void groupBox5_DragEnter(object sender, DragEventArgs e) 
{ 
    e.Effect = DragDropEffects.Move; 
} 

接下來,從屬性窗口創建GROUPBOX一個 「的DragDrop」 事件

private void groupBox5_DragDrop(object sender, DragEventArgs e) 
{ 
    Control c = e.Data.GetData(e.Data.GetFormats()[0]) as Control; 
    // Declare rnd globally for creating random id for dynamic button(eg : Random rnd = new Random();) 
    Button btn = new Button(); 
    btn.Name = "Button" + rnd.Next(); 
    btn.Size = c.Size;    
    btn.Click += new System.EventHandler(DynamicButton_Click); 
    if (c != null) 
    {     
     btn.Text = c.Text; 
     btn.Location = this.groupBox5.PointToClient(new Point(e.X, e.Y)); 
     this.groupBox5.Controls.Add(btn); 
    } 
}