我正在使用C#处理Windows窗体项目,其中我使用groupbox
作为容器并向其添加项目(Labels
,pictureBoxes
...)。我想知道是否可以在此控件上实现拖放事件以使用鼠标移动项目,或者如果我必须在我添加到groupBox
的控件中实现此事件。
答案 0 :(得分:1)
答案 1 :(得分:0)
此代码用于复制控件(这里我们已经为Button完成了。您可以通过将Button类更改为DragDrop事件中的任何其他类来使用任何控件)到组框。
首先将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);
}
}