【发布时间】:2014-07-11 05:12:30
【问题描述】:
我需要在 c# 中使用 treeview 进行拖放。我听说 3 个事件是最常见的 1.项目拖动 2.DragDrop 和 3.DragEnter。
而这里 itemDrag 事件在从树视图拖动时为我触发,但其余两个事件都没有为我触发。尝试了许多解决方案,现在来到这里寻求解决方案
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
string[] strItem = e.Item.ToString().Split(':');
DoDragDrop(strItem[1], DragDropEffects.Copy | DragDropEffects.Move); }
上述方法触发,
private void treeView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
上面的dragEnter事件没有触发,同样的dragDrop事件也没有触发。为什么会这样??
我正在从树形视图中拖动,需要粘贴到 PowerPoint 或 Word 中。 (即)树视图类似于 Office 工具的插件。
问候, 阿尔沙德
【问题讨论】:
-
您正在开发什么类型的应用程序?网页/WinForms/...?
-
您是否为给定控件设置了
AllowDrop属性? -
@scheien:不,我没有。??我应该吗??
-
您必须在拖放中涉及的所有控件上设置 AllowDrop 属性。例如treeview1 和 treeview2,或者如果您只重新定位元素,则只需 treeview1。
-
只是为了澄清: DragEnter 应该为拖动项目移动到的控件触发。如果您将一个项目拖出树视图,然后将其返回,则该事件将触发。但是,您需要将 AllowDrop 设置为 true。
标签: c# events drag-and-drop treeview dragenter