最近发现一控件特有意思,结合网上的教程,研究(难道只有科学家才能用这一词,我等小辈不可以吗?)了一番,这就是treeview控件,我准备从以下几个方面学习它
一、treeview的基本用法及真容(没见过面,就谈不了解,不了解就谈不交朋友,扯远了)
二、treeview的应用实例(网上很少,自已动手,丰衣足食)
三、treeview 与数据库的给合(有点难,我下决心克服它)
环境VS2005 VB.NET
第一步,与treeview见见面
找到了吗?在众多的控件,很不起眼,不过功能强大,如果你把他拖曳到设计区,他只是一个空白框,没有特殊的,这需要另一个控件Imgelist的配合它在工具箱——组件下如下图
与VB6.0不同,ImageList控件不出现设计区而出在设计区的下面,如上图(上面的空白框就是Treeview控件)
这里需要说明一下imagelist控件只是图标装载具,没有另的用处 下面说一下如何向imagelist添加位图
1、选择Imagelist,在它属性页选择imgae如下图:
注意ImageSize尺寸 16*16 32*32 自定义,可以设置
点击“添加”添加一些位图文件,点击确定
2、将TreeView属性页中的“ImageList”选项设置为“ImageList1”
3、点击TreeView属性页中的“Nodes”选项,则会弹出树结点编辑对话框
4、点击"添加根"及点击"添加子级"如下图
5、修改一下
从这个简单的例子可以看出这个treeview控件(树形控件)反应一定的等级关系,非常的实用
附:在TreeNode编辑器中编辑结点
(1)点击“Add Root(添加根)”按钮,则在结点编辑框中出现了一个结点(默认名为NodeN),可根据树型的需要,将其他结点添加到这棵树上。
(2)选择需要添加子结点的结点,单击“Add Child(添加子级)”按钮,则在当前选中的结点中的结点上添加了一个子结点。
(3)选择需要添加位图的结点,然后在“Image”(图标)、“Selected Image“(选择图标)中,在ImageList1中选择需要的位图即可。
(4)点击“OK(确定)”按钮,在TreeView1中就会显示编辑的树了
第二步,如何在程序运行中添加“根”“子级”
用的方法是 1、找到“根”结点用的方法
TreeViewName.Nodes.Item(Index1).Nodes.Item(Index2)...
2、添加“根”用到方法为
TreeViewName.Nodes.Item(Index1).Nodes.Item(Index2)….Add("NodeText")
或
TreeViewName.Nodes.Item(Index1).Nodes.Item(Index2)….Add("objNode")
下面借助button(按钮)举个例子八年级结点下,添加三班,四班
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nodx As New TreeNode()
Dim nodx01 As New TreeNode()
nodx.Text = "三班"
nodx.ImageIndex = 2
nodx01.Text = "四班"
nodx01.ImageIndex = 2
TreeView1.Nodes.Item(1).Nodes.Add(nodx)
TreeView1.Nodes.Item(1).Nodes.Add(nodx01)
End Sub
问题得到了解决,思考一下问题又来了
1、如何添加“九年级”呢?
添加代码:TreeView1.Nodes.Add("九年级" & (TreeView1.GetNodeCount(False) + 1))
运行一下九年后面多了一个3,如何去掉,很简单 代码如下
TreeView1.Nodes.Add("九年级" )
2、如何添加“九年级一班”、“九年级二班”、“九年级三班”、
添加一个按钮并改标题为添加九年级一班二班如下图
并添加代码:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TreeView1.Nodes.Add("九年级")
Dim nodx02 As New TreeNode()
Dim nodx03 As New TreeNode()
nodx02.Text = "一班"
nodx02.ImageIndex = 2
nodx03.Text = "二班"
nodx03.ImageIndex = 2
TreeView1.Nodes.Item(2).Nodes.Add(nodx02)
TreeView1.Nodes.Item(2).Nodes.Add(nodx03)
End Sub
点击第二个按钮出现下图:
咋样不错,但这只是初级,还中级呢?
3、如何删除结合
理论知识:使用Nodes属性的Remove 方法删除单个结点,也可以使用Clear 方法清除所有的结点,如下代码所示:
'删除选定的结点
TreeView1.Nodes.Remove(TreeView1.SelectedNode)
'清除TreeView 控件的所有节点(最厉害,最极端的)
TreeView1.Nodes.Clear()
实例:
删除选定的结点代码如下
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If TreeView1.SelectedImageIndex <> 1 Then
TreeView1.Nodes.Remove(TreeView1.SelectedNode) '删除选定的节点
End If
End Sub
如下图:
点击“删除选定的节点”后如下图 根结点下有无子结点,均可删除!
结合这个例子说明一下如何
3、如何进行动态改名?(程序运行下)
4、如何进行右键动态改名