您的位置:首页 > 编程语言 > C#

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

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

 

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中的实现原理是一样的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息