【发布时间】:2020-09-08 07:06:18
【问题描述】:
我想让我的 Windows 用户控件能够拖放。我将把我的用户控件拖到其他地方放在那里。
【问题讨论】:
标签: winforms drag-and-drop user-controls
我想让我的 Windows 用户控件能够拖放。我将把我的用户控件拖到其他地方放在那里。
【问题讨论】:
标签: winforms drag-and-drop user-controls
我们需要做两件事。
可拖动:
认为“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)并处理如下:
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;
}
就是这样。
【讨论】: