C# 用户控件允许删除
我有一个C# 用户控件允许删除,c#,winforms,user-controls,drag-and-drop,sharpdevelop,C#,Winforms,User Controls,Drag And Drop,Sharpdevelop,我有一个UserControl,它看起来像WPF的XAML编辑器。我想把treenodes拖进去做点什么。拖动系统正在为treeview部件工作。但我似乎无法使drop部分在自定义控件中工作。(该控件是使用sharpdevelop库构建的) 我将自定义控件的AllowDrop属性设置为True。我将此添加到我的控件中: this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop)
UserControl
,它看起来像WPF的XAML
编辑器。我想把treenodes拖进去做点什么。拖动系统正在为treeview部件工作。但我似乎无法使drop部分在自定义控件中工作。(该控件是使用sharpdevelop
库构建的)
我将自定义控件的AllowDrop
属性设置为True
。我将此添加到我的控件中:
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop)
private void XmlEditControl_DragDrop(object sender, DragEventArgs e)
{
MessageBox.Show("I dropped");
}
但我从来没见过留言盒。我是否遗漏了一些明显的内容?当首先触发
DragEnter
事件以完成拖放操作时,您需要更改DragEventArgs
的DragDropEffects
。因此,DragDrop
事件将触发
示例
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragEnter);
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop);
private void XmlEditControl_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
private void XmlEditControl_DragDrop(object sender, DragEventArgs e)
{
MessageBox.Show("I dropped");
}
谢谢,
我希望这对您有所帮助:)不起作用。我仍然看到“不能在此处放置”标志,因此我根本不允许在控件中放置,效果也不会触发,我的消息框也不会触发。:(@PhaDaPhunk不确定问题出在哪里。您是否确保其他事件正确触发?如果是,请尝试在
DragOver
事件下显示MessageBox
)做同样的事情。天哪,这太烦人了,因为它应该会起作用。0_o@PhaDaPhunk其他事件是否正常触发,当然包括Load
?您的控件可能有问题,是否确实将AllowDrop
设置为True
?您是否尝试创建另一个用户控件并检查DragDrop是否正在启动?我找到了答案。我必须去XmlEditor停靠的父级。我必须键入xmlEditor.TextArea.ActiveArea.Drag……,而不是只键入this.Drag。。。。。。。。哎哟,但现在它起作用了,谢谢。如果你想把这个写进你的答案,我会接受的