由于拖拽文件的便利性,目前已经越来越被广泛的开发人员接受,本文通过一个简单的事例来演示拖拽功能,以便正在学习相关知识的开发人员阅读,具体步骤如下:
1. 开发环境:
1) Microsoft Visual Studio 2008
2) .Net Framework 3.5
2. 测试环境:
1) Windows 7
3. 实现步骤:
1) 使用Microsoft Visual Studio 2008创建一个WInForm工程,在其中加入两个控件,分别是TreeView与TextBox,并将其命名为
treeview1和textbox1
2) 设置textbox1的AllowDrap属性为true
3) 响应treeview1的ItemDrap事件,具体代码如下:
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { DoDragDrop(e.Item, DragDropEffects.Copy); }
4) 响应textbox1的两个事件,分别为DragDrop与DragEnter,代码如下
private void textBox1_DragEnter(object sender, DragEventArgs e) { TreeNode tn; if (e.Data.GetDataPresent(typeof(TreeNode))) { tn = (TreeNode)(e.Data.GetData(typeof(TreeNode))); TreeNode tPn = tn.Parent; if (tPn.Text == "RootManager") { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } } else e.Effect = DragDropEffects.None; } private void textBox1_DragDrop(object sender, DragEventArgs e) { TreeNode tn; if (e.Data.GetDataPresent(typeof(TreeNode))) { tn = (TreeNode)(e.Data.GetData(typeof(TreeNode))); this.textBox1.Text += tn.Text + "/r/n"; } }
5) 在Microsoft Visual Studio 2008中选择treeView1控件后,添加Node,添加根Node的名称为"RootManager",在根目录下添加子
Node,分别命名为"Frist","Second","Third"
6) 编译工程,就能从TreeView中拖拽到TextBox中了
7) 从TextBox中拖拽到TreeView中的实现原理是一样的