Treeview_AfterSelect

rgreen

New member
Joined
Dec 4, 2002
Messages
3
I need some help using datasets and treeviews. Im working a small private project that fills a treeview from a database. This works OK using the FillTree() sub below. When a treeview node is clicked I want to be able to fill other controls on my form with data from the same database. I cannot work out how to do this. Can someone please help me complete tvCodeExplore_AfterSelect()

Any help would be invaluable

Many thanks

Russ

Code:
#Region "   Treeview Code "
    Private Sub FillTree()
        Dim rootAdapter As New OleDbDataAdapter("SELECT * FROM tblSource WHERE ParentID = 0", conn)
        Dim childAdapter As New OleDbDataAdapter("SELECT * FROM tblSource WHERE ParentID <> 0", conn)

        Dim treeDataSet As New DataSet()
        treeDataSet.EnforceConstraints = False
        rootAdapter.Fill(treeDataSet, "Parents")
        childAdapter.Fill(treeDataSet, "Children")
        treeDataSet.Relations.Add("DBtoFolder", treeDataSet.Tables("Parents").Columns("ID"), treeDataSet.Tables("Children").Columns("ParentID"))

        treeDataSet.Relations.Add("FolderToItem", treeDataSet.Tables("Children").Columns("ID"), treeDataSet.Tables("Children").Columns("ParentID"))

        tvCodeExplore.Nodes.Clear()

        Dim parent As DataRow
        For Each parent In treeDataSet.Tables("Parents").Rows
            Dim parentNode As New TreeNode(parent("Name").ToString())

            DIm child As DataRow
            For Each child In parent.GetChildRows("DBtoFolder")
                Dim folderNode As New TreeNode(child("Name").ToString())
                Dim item As DataRow
                For Each item In child.GetChildRows("FolderToItem")
                    folderNode.Nodes.Add(New TreeNode(item("Name").ToString()))
                Next item
                parentNode.Nodes.Add(folderNode)
            Next child
            tvCodeExplore.Nodes.Add(parentNode)
        Next parent

        tvCodeExplore.Nodes(0).Expand()
    End Sub

    Private Sub tvCodeExplore_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvCodeExplore.AfterSelect
        If the e.Node.Parent doesnt exist in otherwords...
        If e.Node.Parent Is Nothing Then
            Me.lblTitle.Text = e.Node.Text
            Me.rtbNotes.Rtf = Nothing
            Me.ctbVB.Text = Nothing
            Me.ctbCSharp.Text = Nothing
            Me.ctbCPlus.Text = Nothing
            Me.ctbJava.Text = Nothing
            Me.ctbHTML.Text = Nothing
            Me.TabPage7.Title = Nothing


            if it Does exist...
        ElseIf Not e.Node.Parent Is Nothing Then
            Me.lblTitle.Text = e.Node.Text
            Me.rtbNotes.Rtf = notes column from database to go in here
            Me.ctbVB.Text = CodeVB column from database to go in here
            Me.ctbCSharp.Text = CodeCS column from database to go in here
            Me.ctbCPlus.Text = CodeCPP column from database to go in here
            Me.ctbJava.Text = CodeJava column from database to go in here
            Me.ctbHTML.Text = CodeHTML column from database to go in here
            Me.TabPage7.Title = CodeOtherName column from database to go in here
        End If
    End Sub
#End Region
 
Back
Top