【发布时间】:2011-02-22 14:09:06
【问题描述】:
万岁!
我很难弄清楚为什么我的树视图(或任何其他组件,甚至是表单本身)不会触发 DragDrop 事件。
我的表格是这样设置的:
一个Form,里面有一个Panel。
Panel有一个TreeView,而这个TreeView(MyTree)有如下代码:
MyTree.AllowDrop = true;
MyTree.DragDrop += new System.Windows.Forms.DragEventHandler(onDragDrop);
MyTree.DragEnter += new System.Windows.Forms.DragEventHandler(onDragEnter);
MyTree.DragLeave += new System.EventHandler(onDragLeave);
MyTree.DragOver += new System.Windows.Forms.DragEventHandler(onDragOver);
处理程序如下所示:
private void onDragEnter(object sender, DragEventArgs e)
{
Console.WriteLine(" === DragEnter === ");
}
private void onDragLeave(object sender, EventArgs e)
{
Console.WriteLine(" === DragLeave === ");
}
private void onDragOver(object sender, DragEventArgs e)
{
Console.WriteLine(" === DragOver === ");
}
private void onDragDrop(object sender, DragEventArgs e)
{
Console.WriteLine(" === DragDrop === ");
}
当我测试我的应用程序时,拖动 *.txt 文件(或任何东西)输出类似于:
=== DragEnter ===
=== DragOver ===
=== DragOver ===
...
=== DragOver ===
=== DragLeave ===
最后一行 ( === DragLeave === ) 并不意味着是一个离开事件。
事实上,当我在 TreeView 上释放鼠标按钮时,就会打印出这一行。
我做错了什么?
【问题讨论】:
标签: c# .net drag-and-drop