【发布时间】:2014-03-29 05:03:58
【问题描述】:
正如我在其他问题中所读到的,大多数人会问为什么它会意外触发,但对我来说它根本不会触发。
using System;
using System.Windows.Forms;
namespace TestDrag
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
treeView1.ItemDrag += treeView1_ItemDrag;
treeView1.DragLeave += treeView1_DragLeave;
groupBox1.AllowDrop = true;
groupBox1.DragEnter += groupBox1_DragEnter;
groupBox1.DragDrop += groupBox1_DragDrop;
treeView1.Nodes.Add("asd");
treeView1.Nodes.Add("dsa");
}
void groupBox1_DragDrop(object sender, DragEventArgs e)
{
throw new NotImplementedException();
}
void groupBox1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
treeView1.DoDragDrop(e.Item, DragDropEffects.Copy);
}
void treeView1_DragLeave(object sender, EventArgs e)
{
MessageBox.Show(this, "This message never shows when node dragged out of treeView1", "This is bad", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
一旦项目被拖出,我想隐藏TreeView,但这个事件永远不会发生>_
【问题讨论】:
-
我将
AllowDrop设为True,然后它进入了。 -
嗯……尽管它们之间没有任何关系。把它作为答案,所以我可以接受。
标签: c# winforms drag-and-drop treeview nodes