曾 经做过一个Windows Form,需要在TreeView空间中实现拖拽的功能,首先我想介绍一下Windows Form中的TreeView控件:使用 Windows 窗体 TreeView 控件,可以为用户显示节点层次结构,就像在 Windows 操作系统的 Windows 资源管理器功能的左窗格中显示文件和文件夹一样。树视图中的各个节点可能包含其他节点,称为“子节点”。可以按展开或折叠的方式显示父节点或包含子节点的 节点。通过将树视图的 CheckBoxes 属性设置为 true,还可以显示在节点旁边带有复选框的树视图。然后,通过将节点的 Checked 属性设置为 true 或 false,可以采用编程方式来选中或清除节点。通过以上的说明,你可能对TreeView控件有了一个初步的了解,在本文中我的目的是向大家演示一下在 TreeView中如何实现接点间的拖拽,如何讲一个节点拖拽到另一个节点之下,使其成为目标节点的子节点,同时被拖拽节点的子节点也将一起被拖拽到目标 节点之下,并保持其原来的树状结构。
在Form Load的时候为了完全显示节点,不必一一点开,建议加上如下代码:
private
void
frmDrag_Load(
object
sender, EventArgs e)
{
this
.treeView1.ExpandAll();
}
要实现TreeView的拖拽功能,首先我们必须将其AllowDrop属性设成true,这样就保证了此TreeView的接点是可以被拖拽的。接下来 我们为TreeView添加3个事件,它们分别是1.ItemDrag事件(当用户开始拖动节点时发生。)2.DragEnter事件(在将对象拖入控件 的边界时发生。)3.DragDrop事件(在完成拖放操作时发生。)
在拖拽时要注意的是:1.目标节点不能为空。2.目标节点不能被拖拽节点本身。3.目标节点不能是被拖拽节点的字节。以下是3个事件的代码:
private
Point Position
=
new
Point(
0
,
0
);
版权声明:本文为bl_song原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。