vb.net入门——TreeView 控件的使用


在vb.net中,TreeView(树型结构)控件是显示节点(Node)对象的级层结构,它通常用于显示一些有等级结构的信息,我们最为熟悉的就是Windows资源管理器左边显示文件和文件夹的窗口。在vb.net工具箱中,TreeView 控件的图标如下图一所示:

TreeView控件的每个节点(Node对象)包含了一个标签和可选的点位图,每个节点又可能包含有若干个的子节点,可以通过控制某个节点来展开显示或者折叠隐藏它所包含的子节点。

一、TreeView 控件的一些常用属性:

1、CheckBoxes 属性:指示是否在树视图控件中的树节点旁显示复选框。

2、FullRowSelect 属性:当 FullRowSelect 为 true 时,选择突出显示将跨越树视图的整个宽度,即整个显示区域的宽度而不仅仅是树节点标签的宽度。如果 ShowLines 设置为 true,则将忽略 FullRowSelect 属性。

3、HideSelection 属性:指示选定的树节点是否即使在树视图已失去焦点时仍会保持突出显示。

4、HotTracking 属性:如果 HotTracking 属性设置为 true,那么当鼠标指针移过每个树节点标签时,树节点标签都将具有超级链接的外观。Underline 字体样式将应用于 Font 而 ForeColor 将设置为蓝色,从而使标签显示为链接。注意:如果 CheckBoxes 属性设置为 true,HotTracking 属性将失效。

5、Indent 属性:设置每个子树节点级别的缩进距离(以像素为单位)。

6、ItemHeight 属性:设置树视图控件中每个树节点的高度。

7、Nodes 属性:获取分配给树视图控件的树节点集合。这个属性是TreeView 控件最重要的属性之一,我们下文将会对它进行更加的详细的说明。

8、PathSeparator 属性:树节点路径(TreeNode.FullPath 属性)所使用的分隔符串,默认为反斜杠字符 (\),树节点路径包括一组由 PathSeparator 分隔符串分隔的树节点标签。标签的范围为根树节点到所需的树节点。如下代码我们可以获得当前选中的节点的路径:

MessageBox.Show(TreeView1.SelectedNode.FullPath)

9、SelectedNode 属性:获取或设置当前在树视图控件中选定的树节点,如果没有选定任何节点,则 SelectedNode 属性则为Nothing。

10、ShowLines 属性:指示是否在树视图控件中的树节点之间绘制连线。

11、ShowPlusMinus 属性:指示是否在包含子树节点的树节点旁显示加号 (+) 和减号 (-) 按钮。

12、ShowRootLines 属性:指示是否在树视图根处的树节点之间绘制连线。

如下图二所示,为ShowLines 属性、ShowPlusMinus 属性、ShowRootLines 属性都设置为True的情形:

二、为TreeView 控件添加节点

TreeView 控件的 Nodes 属性包含了它所有的节点,下面我们就来了解如何为树状控件添加节点

1、通过树节点编辑器添加

选中TreeView 控件,在它的属性对话框中找到Nodes 属性,然后单击它后面的省略号,弹出“树节点编辑器”,如下图三所示:

然后通过编辑器上的“添加根”来添加根节点,通过“添加子级”来为选中的节点添加子节点,通过“删除”来删除选定的节点,“标签”输入框确定节点的名称,注意,只有设置了TreeView 控件的ImageList 属性才能选择设置节点的图像。

http://www.qqread.com/book/myvbnet/my0050.html

2、通过编程方式添加节点

给TreeView添加结点用到的是“Nodes.Add”方法,首先选定要添加子结点的结点才能应用这个方法。

TreeView中的结点的组织关系是父结点管理子结点的关系,也就是说,子结点组成的集合就是父结点的“Nodes”属性,子结点的“Index”属性,是根据其在子结点集合中的位置而决定的,而不是整棵树中结点的位置。根据这个特点,若想找到指定结点须按以下的语法:

TreeViewName.Nodes.Item(Index1).Nodes

而添加结点的方法为:

TreeViewName.Nodes.Item(Index1).Nodes.Add("NodeText")

TreeViewName.Nodes.Item(Index1).Nodes.Add("objNode")

如下代码所示为选中的节点添加一个子节点:

TreeView1.SelectedNode.Nodes.Add("www")

3、编程删除节点

使用Nodes属性的Remove 方法删除单个节点,也可以使用Clear 方法清除所有的节点,如下代码所示:

'删除选定的节点

TreeView1.Nodes.Remove(TreeView1.SelectedNode)

'清除TreeView 控件的所有节点

TreeView1.Nodes.Clear()

4、示例演示

我们现在用一个实例来看如何使用Nodes属性来实现代码编程添加删除树形控件的节点。首先为设计如下图四所示的程序界面,其中有四个Button 控件,一个TreeView 控件:

为“添加根节点”按钮添加如下代码:

TreeView1.Nodes.Add("根节点" & (TreeView1.GetNodeCount(False) + 1))

注意:GetNodeCount方法为获得本级别的节点数,可以通过参数False来指定不包括它的子节点

为“添加子节点”按钮添加如下代码:

Dim node As TreeNode = TreeView1.SelectedNode

If Not node Is Nothing Then

node.Nodes.Add("子节点" & (node.GetNodeCount(False) + 1))

Else

MessageBox.Show("没有选中任何节点")

End If

注意:TreeNode.GetNodeCount 方法返回的是分配给 Nodes 集合的子树节点的数目。

为“删除单个节点”按钮添加代码:

Dim node As TreeNode = TreeView1.SelectedNode

If node Is Nothing Then

MessageBox.Show("没有选中任何节点")

Else

TreeView1.Nodes.Remove(node)

End If

为“删除所有节点”按钮添加代码:

TreeView1.Nodes.Clear()

 

本文作者:



相关阅读:
超强推荐的js编程中的简洁写法收集
用php或asp创建网页桌面快捷方式的代码
zblog二次回复不显示在侧栏最新评论里的修改方法
将Windows 7中的AeroSnap功能禁用
活动目录管理:拆分双用途域控制器
MSSQL Server 查询优化方法 整理
Scp命令在Linux系统之间Copy文件的方法
php递归实现无限分类生成下拉列表的函数
asp.net中操作Excel助手相关代码
深入jsp:useBean
如何实现iframe(嵌入式帧)的自适应高度" target="_blank">如何实现iframe(嵌入式帧)的自适应高度
忘记wordpress的登录密码的解决方法(比较简单)
管理SQL Server数据库和应用元数据
CSS网页制作教程:overflow属性
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4