大家好,今天给各位分享treeview控件的一些知识,其中也会对treeview控件属性进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
在Windows Forms开发中,我们经常需要处理大量的数据,而将这些数据组织得清晰、直观,对于提高用户体验和开发效率至关重要。这时候,TreeView控件就成为了我们的得力助手。它可以帮助我们以树状结构展示数据,让用户可以轻松地浏览和选择。下面,我们就来详细了解一下TreeView控件的使用方法、特点和技巧。
TreeView控件简介
TreeView控件是Windows Forms中一个非常重要的控件,它允许开发者将数据以树状结构的形式展示给用户。用户可以通过展开和折叠节点来浏览数据,选择节点进行操作。TreeView控件可以用于各种场景,例如文件浏览器、目录树、组织结构等。
TreeView控件的基本使用
要使用TreeView控件,首先需要在Visual Studio中将其拖放到窗体上。以下是一个简单的示例:
“`csharp
// 创建一个新的Windows Forms应用程序
using System;
using System.Windows.Forms;
public class TreeViewExample : Form
{
private TreeView treeView1;
public TreeViewExample()
{
treeView1 = new TreeView();
treeView1.Dock = DockStyle.Fill;
Controls.Add(treeView1);
InitializeTreeView();
}
private void InitializeTreeView()
{
// 添加节点
TreeNode node1 = new TreeNode(“
怎样使用TREEVIEW控件
在进行VFP程序开发时,为了让我们的应用程序看起来更加专业化,我们不可避免地要在设计过程中为程序添加一些专业的控件。工欲善其事必先利其器,在进行程序设计时对所用的控件必须有一个清晰的了解。本文要向大家介绍的就是TreeView控件。TreeView控件能够以一种树形目录的方式来显示各种资料,常见的TreeView控件使用的例子就是注册表编辑器和Windows的资源管理器,单击节点的+号,你可以展开该节点,同样你也可以关闭所展开的节点。如何在你的程序中加入TreeView控件?接下来以VFP为例,向大家介绍TreeView控件的使用方法。一、在表单中添加TreeView控件TreeView控件属于OLE控件。所以,在VFP中添加TreeView控件的方法是在表单中加入OLE容器控件,在出现了InsertObject标题之后,选择InsertControl,在ObjectType栏内选择MicrosoftTreeViewControl。之后,在表单上你就能看到TreeView控件了。二、在TreeView控件中加入节点往TreeView控件中加入节点是一项很关键的工作。使用TreeView控件中Node(节点)对象的Add方法,你便能够定制由TreeView控件显示的内容(节点内容)。Add的用法如下:Add(relative,relationship,key,text,image,selectedimage)各个参数的含义如下:Relative:参照节点的键值。往TreeView控件加入节点时,你能够决定所添加的节点与业已存在的节点之间的关系。relative参数的作用就是指明已存在的节点的名称(键值)。Relationship:指明欲加入的节点与业已存在的节点之间的关系。其可选值及具体含义如下:0:顶级节点,新添的节点放置在参照节点的最上面。1:末级节点,新添的节点放置在参照节点的最下面。2:次级节点,新添的节点紧跟参照节点。3:上级节点,新添的节点放在参照节点的上面。4:子节点,新添的节点为参照节点的子节点。需要说明的是,描述上述参数使用到的顶、末、次、上具体是指物理位置上的关系。并且,新添加的节点的存放位置与申明语句的先后位置无关。Key:新添加节点的键值(字符串类型),该键值必须是唯一的。Text:所添加节点的标题。Image和selectedimage:图像索引值。可选参数(N型),指明新添加的节点在选中与没选中时所显示的不同图像。通常,这些图像是存放在ImageList(用来存放图片的)控件中的。在TreeView控件中你可以设置该控件的ImageList值。三、对TreeView控件的常用操作
1.添加节点:添加节点的操作主要是由上面提到的Add函数完成的。由TreeView控件中每个被显示的目录项被称之为节点(Node),应该注意的是:在添加过程中,你操作的对象是节点,而非TreeView控件本身。所以你不能直接使用TreeView.add命令。2.删除节点:删除节点主要是使用Remove函数,该函数的用法如下:Nodes.Remove(Key),Key指明欲删除节点的键值。3.指明对TreeView控件事件响应程序:在设计好TreeView之后,指明对事件如何响应是必不可少的。通常,最常用的是针对Click、DblClick和NodeClick事件,在设计此类事件的响应程序时,很自然地要涉及到确认用户所选择的节点。上面提到了,在对TreeView进行操作时,实际上是在对Node对象进行操作。Node对象中实际上是与之有关的各种数据(如:节点的Key值、Text值、Image值等等)和函数的结合体。通过对Node对象进行存取操作,一切都变得那么容易了。四、实战演习上面说了那么多,还是亲自动动手吧。下面的例子可以让你对TreeView控件有更加清晰地认识。这些程序并不复杂,但却演示了TreeView控件的基本原理及常用的操作。1.在TreeView控件的Init事件中添加如下代码,这些语句能够让你了解TreeView控件中节点与节点之间的关系:this.nodes.add(,,TOP,参照目录项)this.nodes.add(TOP,0,TopOnTop,参数0:放在参照目录项的最上面)this.nodes.add(TOP,1,TOP1,参数1:放在参照目录项的最下面)this.nodes.add(TOP,2,TOP2,参数2:紧靠参照目录)this.nodes.add(TOP,3,TOP3,参数3:放在参照目录的上面)this.nodes.add(TOP,4,Child?of?TOP,参数4:参照目录的子目录)this.nodes.add(Child?of?TOP,4,GrandSon?of?
怎样使用C#TreeView控件
方法/步骤
1
打开Microsoft Visual Studio 2010,新建名字为【treeView】的程序。
2
在界面上添加【treeView】的控件,并调整为合适大小。
3
在程序界面上加入其它需要的控件:包括,
用于输入父节点个数和子节点个数的2个输入框;
生成节点的按钮、删除节点的按钮、清除所有节点的按钮;
输出日志信息的文本框。
4
编辑代码,输入【生成节点】的代码;
获取子节点和父节点的个数,使用循环添加父节点和子节点。
5
编辑【清除所有节点】的代码。
6
编辑【删除所选节点】的代码。
7
点击【treeview】控件,在属性中选择行为,从行为列表中选择【afterselect】双击,在代码编辑页面,添加节点被选择后的代码。
8
编辑输出日志的output方法的代码。
9
生成exe文件进行测试
10
输入父节点和子节点数量分别为2和4,生成树结构。确认生成成功。
11
点击【清除所有节点】,可以看到所有节点都已经被清空。
12
输入父节点和子节点数量分别为3和3,生成树结构。确认生成成功。
13
点击【父节点3】的【子节点2】,点击【删除节点】。
14
可以看到该子节点已经被清空。再点击【父节点2】。
15
点击【删除节点】,可以看到该父节点已经被清空。
16
点击各个节点时,可以看到日志中输入对应的节点信息。
vb.net中TreeView控件的使用
在中 TreeView(树型结构)控件是显示节点(Node)对象的级层结构它通常用于显示一些有等级结构的信息我们最为熟悉的就是Windows资源管理器左边显示文件和文件夹的窗口在工具箱中 TreeView控件的图标如下图一所示
TreeView控件的每个节点(Node对象)包含了一个标签和可选的点位图每个节点又可能包含有若干个的子节点可以通过控制某个节点来展开显示或者折叠隐藏它所包含的子节点
一 TreeView控件的一些常用属性
CheckBoxes属性指示是否在树视图控件中的树节点旁显示复选框
FullRowSelect属性当 FullRowSelect为 true时选择突出显示将跨越树视图的整个宽度即整个显示区域的宽度而不仅仅是树节点标签的宽度如果 ShowLines设置为 true则将忽略 FullRowSelect属性
HideSelection属性指示选定的树节点是否即使在树视图已失去焦点时仍会保持突出显示
HotTracking属性如果 HotTracking属性设置为 true那么当鼠标指针移过每个树节点标签时树节点标签都将具有超级链接的外观 Underline字体样式将应用于 Font而 ForeColor将设置为蓝色从而使标签显示为链接注意如果 CheckBoxes属性设置为 true HotTracking属性将失效
Indent属性设置每个子树节点级别的缩进距离(以像素为单位)
ItemHeight属性设置树视图控件中每个树节点的高度
Nodes属性获取分配给树视图控件的树节点集合这个属性是TreeView控件最重要的属性之一我们下文将会对它进行更加的详细的说明
PathSeparator属性树节点路径(TreeNode FullPath属性)所使用的分隔符串默认为反斜杠字符(\)树节点路径包括一组由 PathSeparator分隔符串分隔的树节点标签标签的范围为根树节点到所需的树节点如下代码我们可以获得当前选中的节点的路径
MessageBox Show(TreeView SelectedNode FullPath)
SelectedNode属性获取或设置当前在树视图控件中选定的树节点如果没有选定任何节点则 SelectedNode属性则为Nothing
ShowLines属性指示是否在树视图控件中的树节点之间绘制连线
ShowPlusMinus属性指示是否在包含子树节点的树节点旁显示加号(+)和减号()按钮
ShowRootLines属性指示是否在树视图根处的树节点之间绘制连线
如下图二所示为ShowLines属性 ShowPlusMinus属性 ShowRootLines属性都设置为True的情形
二为TreeView控件添加节点
TreeView控件的 Nodes属性包含了它所有的节点下面我们就来了解如何为树状控件添加节点
通过树节点编辑器添加
选中TreeView控件在它的属性对话框中找到Nodes属性然后单击它后面的省略号弹出树节点编辑器如下图三所示
然后通过编辑器上的添加根来添加根节点通过添加子级来为选中的节点添加子节点通过删除来删除选定的节点标签输入框确定节点的名称注意只有设置了TreeView控件的ImageList属性才能选择设置节点的图像
通过编程方式添加节点
给TreeView添加结点用到的是 Nodes Add方法首先选定要添加子结点的结点才能应用这个方法
TreeView中的结点的组织关系是父结点管理子结点的关系也就是说子结点组成的集合就是父结点的 Nodes属性子结点的 Index属性是根据其在子结点集合中的位置而决定的而不是整棵树中结点的位置根据这个特点若想找到指定结点须按以下的语法
TreeViewName Nodes Item(Index) Nodes
而添加结点的方法为
TreeViewName Nodes Item(Index) Nodes Add( NodeText)或
TreeViewName Nodes Item(Index) Nodes Add( objNode)
如下代码所示为选中的节点添加一个子节点
TreeView SelectedNode Nodes Add()
编程删除节点
使用Nodes属性的Remove方法删除单个节点也可以使用Clear方法清除所有的节点如下代码所示
删除选定的节点
TreeView Nodes Remove(TreeView SelectedNode)
清除TreeView控件的所有节点
TreeView Nodes Clear()
示例演示
我们现在用一个实例来看如何使用Nodes属性来实现代码编程添加删除树形控件的节点首先为设计如下图四所示的程序界面其中有四个Button控件一个TreeView控件
为添加根节点按钮添加如下代码
TreeView Nodes Add(根节点&(TreeView GetNodeCount(False)+))
注意 GetNodeCount方法为获得本级别的节点数可以通过参数False来指定不包括它的子节点
为添加子节点按钮添加如下代码
Dim node As TreeNode= TreeView SelectedNode
If Not node Is Nothing Then
node Nodes Add(子节点&(node GetNodeCount(False)+))
Else
MessageBox Show(没有选中任何节点)
End If
注意 TreeNode GetNodeCount方法返回的是分配给 Nodes集合的子树节点的数目
为删除单个节点按钮添加代码
Dim node As TreeNode= TreeView SelectedNode
If node Is Nothing Then
MessageBox Show(没有选中任何节点)
Else
TreeView Nodes Remove(node)
End If
为删除所有节点按钮添加代码
TreeView Nodes Clear()
代码添加完毕后运行程序分别使用添加根节点添加子节点为控件添加节点如下图五所示
然后再试验删除节点的效果
三访问控件的所有节点
因为Nodes集合中所包含的只是本级节点的集合如果某个Node包含有子节点并不会从当前的Nodes体现出来如下代码所示我们只能访问到所有的根节点而不是所有的节点
假定我们是在前面示例的基础上添加一个名为遍历节点的按钮然后在该按钮的Click事件中添加如下代码
Dim node As TreeNode
Dim str As String=
For Each node In TreeView Nodes
str= str& node Text& vbCr
Next
MessageBox Show(str)
node= Nothing
运行后先分别为控件添加若干个根节点与子节点然后单击遍历节点按钮效果如下图六所示
很明显我们遍历了Nodes集合但是并没有如期访问到子节点怎么解决这个问题呢?请看下一页
如上页的问题我们假设一个根节点的Nodes集合为Nodes该集合中的一个Node节点为Node Node下有若干个子节点我们把它的子节点的集合称为Nodes我们用For Each遍历Nodes时它访问到Node但不会访问Nodes集合
如果我们要访问Nodes就需要像遍历Nodes一样遍历Nodes解决办法如下
首先建立一个过程用于遍历一个Node节点下的子节点
Private Sub PrintNode(ByVal N As TreeNode)
Debug WriteLine(N Text)
Dim node As TreeNode
For Each node In N Nodes
PrintNode(node)
Next
End Sub
然后把遍历节点的Click事件中修改为如下代码
Dim node As TreeNode
For Each node In TreeView Nodes
PrintNode(node)
Next
node= Nothing
运行后先分别为控件添加若干个根节点与子节点然后单击遍历节点按钮然后查看输出窗口效果如下图七所示
可以发现已经能真正地遍历了所有节点
lishixinzhi/Article/program/net/201311/11617
关于本次treeview控件和treeview控件属性的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。




