【问题标题】:Windows Form - Make "User Control" Drag-Drop CapableWindows 窗体 - 使“用户控制”能够拖放
【发布时间】:2020-09-08 07:06:18
【问题描述】:

我想让我的 Windows 用户控件能够拖放。我将把我的用户控件拖到其他地方放在那里。

【问题讨论】:

    标签: winforms drag-and-drop user-controls


    【解决方案1】:

    我们需要做两件事。

    1. 使用户控件(也适用于任何控件)可拖动。
    2. 使表单的某些区域可放置。

    可拖动:

    认为“Ctrl”是您的用户控件,而“ctrl”是您的用户控件的一个实例。

    • 添加事件处理程序:
    ctrl.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ctrl_MouseDown);
    
     - make draggable:
      private void ctrl_MouseDown(object sender, MouseEventArgs e)
            {
                ((Ctrl)sender).DoDragDrop("Your data, you want to pass", DragDropEffects.Move);
            }
    
    

    使某些表单区域可放置:

    认为“ctlPanel”是表单的一个面板,您希望在其中放置可拖动控件。允许 Drop 和 Assign 两个事件(DragEnter 和 DragDrop)并处理如下:

    • 转到面板的属性并设置“AllowDrop”
     private void ctlPanel_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = DragDropEffects.Move;
            }
    
            private void ctlPanel_DragDrop(object sender, DragEventArgs e)
            {
                string  xyz = e.Data.GetData(DataFormats.StringFormat) as string;
            }
    
    

    就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 2011-06-30
      相关资源
      最近更新 更多