vb.net结构控件 vbnet structure( 二 )


编程删除节点
使用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 = strnode TextvbCr
Next
MessageBox Show(str)
node = Nothing
运行后 先分别为控件添加若干个根节点与子节点 然后单击 遍历节点 按钮 效果如下图六所示
很明显 我们遍历了Nodes集合 但是并没有如期访问到子节点 怎么解决这个问题呢?请看下一页
如上页的问题 我们假设一个根节点的Nodes集合为Nodes 该集合中的一个Node节点为Node Node 下有若干个子节点 我们把它的子节点的集合称为Nodes 我们用For Each 遍历Nodes 时 它访问到Node 但不会访问Nodes 集合
如果我们要访问Nodes 就需要像遍历Nodes 一样遍历Nodes 解决办法如下
首先 建立一个过程用于遍历一个Node节点下的子节点
【vb.net结构控件 vbnet structure】 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
VB.NET ListView1控件添加数据要使用ListView控件 , 需要加入组件:
Microsoft Windows Common Controls 6.0
Windows资源管理器的右半部分,就是一个ListView控件 。
作用
列出并列关系的对象及对象属性 。
ListView控件的对象层次结构
ListView -整个控件
ColumnHeaders -标题行

推荐阅读