首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>WINFORM>C#实现在Windows应用程序中支持拖拽的TreeView控件
C#实现在Windows应用程序中支持拖拽的TreeView控件
来源: 发布时间:2008-03-06 发布人: 浏览: 人次   字体: [ ]  
TreeView已经提供了支持拖拽的事件:

ItemDrag: 用户拖拽TreeNode时触发。当它发生时,调用DoDragDrop方法初始化拖拽过程。

DragEnter: 在你初始化拖拽操作后,你必须处理目标TreeView控件的DragEnter事件。 这个事件发生在用户拖拽TreeNode对象从TreeView控件到目标控件范围点内。DragEnter事件能够指定目标TreeView控件,无论拖拽操作对这个控件是否用。代码中仅仅是移动操作。

DragDrop: 最后是要处理目标TreeViewDragDrop事件。这个事件发生在用户推拽TreeNode对象并释放到目标控件中。处理这个事件, 返回TreeNode对象并添加到目标TreeView控件上。代码中用Data对象返回。

以下代码实现一个TreeView控件上拖拽任意节点到指定节点上,也可以自己扩展为多个TreeView控件间TreeNode相互拖拽的程序。Data对象的GetData方法返回被拖拽的TreeNode对象。GetNodeAt方法用来确定这个TreeNode对象拖拽到的目标控件(这里就是目标TreeNode对象)。在确定位置之后把源TreeNode对象添加到目标TreeNode对象下面,作为其子结点。因为是移动操作,因此最后会把源TreeNode对象删除掉。

通过以下几步创建实例程序:

1.

创建C# Windows应用程序

2.

界面增加一个TreeView控件

3.

设置TreeViewAllowDrop属性设置为True

4.

Page_Load方法中增加如下代码: 

private void Form1_Load(object sender, System.EventArgs e)

              
{

// TreeView控件增加一些测试节点

                     TreeNode ParentNode1;

                     ParentNode1 
= treeView1.Nodes.Add("tv1");

                     ParentNode1.Nodes.Add(
"tv1FirstChild");

                     ParentNode1.Nodes.Add(
"tv1SecondChild");

                     ParentNode1.Nodes.Add(
"tv1ThirdChild");

                     ParentNode1.Nodes.Add(
"tv1FourthChild");

                     ParentNode1.Expand();

 

// TreeView控件增加事件

                     
this.treeView1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView_ItemDrag);

                     
this.treeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView_DragEnter);

                     
this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop);

              }

5.

//treeView_ItemDrag 事件代码:

private void treeView_ItemDrag(object sender,

                     System.Windows.Forms.ItemDragEventArgs e)

              
{

                     DoDragDrop(e.Item, DragDropEffects.Move);

              }

6.

// treeView_DragEnter事件代码:

private void treeView_DragEnter(object sender,

                     System.Windows.Forms.DragEventArgs e)

              
{

                     e.Effect 
= DragDropEffects.Move;

              }

7.



// treeView_DragDrop事件代码:

private void treeView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)

              
{

                     TreeNode NewNode; 

                     
if(e.Data.GetDataPresent(typeof(TreeNode)))

                     
{

                            Point pt 
= ((TreeView)sender).PointToClient(new Point(e.X, e.Y));

                            TreeNode DestinationNode 
= ((TreeView)sender).GetNodeAt(pt);

                            NewNode 
= (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");

                            DestinationNode.Nodes.Add((TreeNode) NewNode.Clone());

                            DestinationNode.Expand();

                            
//删除已经移动的节点

                            NewNode.Remove();

                     }


              }


相 关 文 章   发布商链接
·使用C#制做进程监视器,可查看进程的...
·winfrom让弹出的MessageBox在指定时...
·vs2005实现关闭窗体的代码
·如何实现winform自动点击webbrowser...
·WinForm实现注册热键的代码
·Winform获取弹窗消息框中的文字代码
·winform中通过设置钩子监视鼠标移动
·winform中实现拖动图片的例子
·winform中如何获得TextBox光标位置?
·WebBrowser中html元素如何触发winfor...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·解决winform得不到GridView控
·winform实现窗体嵌入并操作可
·winform实现的仿Msn移动提示...
·WinForm实现渐变窗体效果代码
·winform实现类似QQ滑动面板的
·asp.net中当按下回车键时响应
·WinForm中TextBox控件循环自...
·winform如何保持TreeView节点
·图解winform用户控件添加自定
·dataset.GetChanges()为什么...
·winform中DatagridView单元格
·WebBrowser中html元素如何触...
·winform中如何获得TextBox光...
·winform中通过设置钩子监视鼠
·Winform获取弹窗消息框中的文
热 门 文 章
·asp.NET实现视频播放器功能代...
·winform中DatagridView单元格...
·在.net中利用webbrowser控件...
·使用C#制做进程监视器,可查看...
·WinForm编程开发实用技巧14则
·C#的简单图片透明处理代码以...
·如何实现winform自动点击webb...
·winform实现类似QQ滑动面板的...
·winform如何保持TreeView节点...
·如何做winform启动页面?
·图解winform用户控件添加自定...
·winform中如何获得TextBox光...
·Winform窗体之间传值的几种方...
·DataGridView控件如何实现分...
·asp.net中当按下回车键时响应...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .