Star知识成长的老家

一个优秀的人,需要具备多方面的知识!

用户操作
[即时聊天] [发私信] [加为好友]
star zhangID:fish_zhang
31209次访问,排名3765(-1)好友2人,关注者2
企业管理等,数据库,软件开发,网站开发
fish_zhang的文章
原创 64 篇
翻译 0 篇
转载 107 篇
评论 2 篇
fish_zhang的公告
本博客内容大多来自网络,方便自己所用,如有雷同请多多包涵!!
最近评论
psnccs:WoW Gold
王中义:楼主太厉害了
文章分类
收藏
    相册
    chenhui530的专栏
    DDD
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 VB.NET中动态加载Treeview节点(二)收藏

    新一篇:  双击treeView的节点时使不展开不折叠子节点 | 旧一篇:  Henry手记-VB.NET中动态加载Treeview节点(一)

     Henry手记-VB.NET中动态加载Treeview节点(二)
                                   韩睿(2003.4.13)
    2.点击时加入子节点
    TreeView的点击,对于TreeView控件本身,并没有为哪一个级别的Node编写点击(选择)事件处理程序,而是把所有节点的点击事件都写入了一个AfterSelect事件中。因此,在编写点击加入子节点的程序之前,我们还必须编写一个查找点击的节点是哪一级节点的方法。
    Public Function NodeLevel(ByVal n As TreeNode) As Byte
            '* 找出树中当前节点的级数
            Dim i As Byte = 1
            Dim m As String
            Do Until n.Parent Is Nothing
                n = n.Parent
                i += 1
            Loop
            Return i
    End Function
    通过这个函数,就可以很方便地得到节点的级别。现在我们可以放心地编写节点选择事件处理程序,以实现动态加载各级节点的子节点。
    Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
            Select Case NodeLevel(e.Node).ToString
                Case "1"
                    If e.Node.GetNodeCount(False) = 0 Then
                        mycommand.CommandText = "select 第一级子节点编号,第一级子节点名称 from 第一级子节点 where 根节点编号 ='" & e.Node.Tag & "'"
                        fill_treeleaf()
                    End If
                Case "2"
                    If e.Node.GetNodeCount(False) = 0 Then
                        mycommand.CommandText = "select 第二级子节点编号,第二级子节点名称 from 第二级子节点 where 第一级子节点编号 ='" & e.Node.Tag & "'"
                        fill_treeleaf()
                    End If
            End Select
    End Sub
     
    Public Sub fill_treeleaf()
            mycommand.Connection = myconnection
            Try
                myconnection.Open()
                Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader
                While mysqlreader.Read()
                    Dim tree_leaf As New TreeNode()
                    tree_leaf.Tag = mysqlreader.GetString(0)
                    tree_leaf.Text = mysqlreader.GetString(1)
                    TreeView1.SelectedNode.Nodes.Add(tree_leaf)
                End While
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                myconnection.Close()
            End Try
    End Sub
    好了,现在来看看点击的结果,如图2和图3所示。
     
    Note:请大家要熟悉TextTag的作用,在使用时会达到很好的效果。
     

    发表于 @ 2007年05月17日 23:02:00|评论(loading...)|编辑

    新一篇:  双击treeView的节点时使不展开不折叠子节点 | 旧一篇:  Henry手记-VB.NET中动态加载Treeview节点(一)

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © fish_zhang