【问题标题】:Drag n drop in groupbox items在组框项目中拖放
【发布时间】:2013-02-26 12:11:08
【问题描述】:

我正在使用 C# 开发一个 Windows 窗体项目,我使用 groupbox 作为容器并向其中添加项目(LabelspictureBoxes...)。我想知道是否可以在此控件上实现拖放事件以使用鼠标移动项目,或者是否必须在添加到groupBox 的控件中实现此事件。

【问题讨论】:

  • 嗨 Sam1,感谢您提供代码示例。我的情况有点不同。我的控件已经在分组框中。
  • @brunoviske 你能添加一些代码你想做什么吗?
  • 到目前为止,我只是尝试了@Sam1 代码示例......我只是无法意识到这个事件在 groupbox 控件中是如何工作的。
  • 大家好,在对我的主题进行了一些研究后,我在朋友的帮助下找到了解决方案。要完成这项任务,我们需要使用一些变量、属性和三个鼠标事件来分配给对象:MouseMove、MouseUp 和 MouseDown。我最近也找到了一个例子:social.msdn.microsoft.com/Forums/en-US/winforms/thread/…

标签: c# winforms groupbox


【解决方案1】:

在对我的主题进行了一些研究后,我在朋友的帮助下找到了解决方案。要完成这项任务,我们需要使用一些变量、属性和三个鼠标事件来分配给对象:MouseMove、MouseUp 和 MouseDown。我最近也找到了一个例子:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/6eb864ff-0ea8-4641-bc2a-83db94371429

【讨论】:

    【解决方案2】:

    此代码用于将控件(此处我们为 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);
         }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多