使用C#实现TreeView与TextBox之间互相拖拽

由于拖拽文件的便利性,目前已经越来越被广泛的开发人员接受,本文通过一个简单的事例来演示拖拽功能,以便正在学习相关知识的开发人员阅读,具体步骤如下:

 

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中的实现原理是一样的

你可能感兴趣的:(windows,object,C#,Microsoft,WinForm,textbox)