Solved

VB.net TreeView image list populating all nodes problem

Posted on 2012-04-01
5
1,850 Views
Last Modified: 2012-04-03
Hi

I am using the following code to populate a TreeView control in VB.net.
The result is shown on the image below.
For some reason, all the nodes are using the second image "TreeView" when
I don't want them to have any image. All I wanted to populate is cube and only
the bottom one. I don't know why it is in the parent as well

    Sub Load_Images()
        Dim myImageList As New ImageList()
        myImageList.Images.Add(My.Resources.cube)
        myImageList.Images.Add(My.Resources.TreeView)
        myImageList.Images.Add(My.Resources.TreeView2)

        ' Assign the ImageList to the TreeView.
        Me.TreeView_From.ImageList = myImageList

        Me.TreeView_From.Nodes(0).Nodes(2).ImageIndex = 0

    End Sub
1
0
Comment
Question by:Murray Brown
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 20

Expert Comment

by:BuggyCoder
ID: 37793844
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 37795453
What are the image indices of the other nodes? Does it work if you set imageindex on one of the nodes to -1?
0
 

Author Comment

by:Murray Brown
ID: 37800428
Hi CodeCruiser

The image is populated with the following code that you saw in a different question. Perhaps that will shed some light on the indices
  Public Sub Populate_TreeView_From_SQL()

        Dim SQLExpression As String = _
            "SELECT TABLE_NAME, COLUMN_NAME FROM information_schema.columns ORDER BY TABLE_NAME,COLUMN_NAME"

        Dim Rootnode As TreeNode = Nothing
        Dim Mainnode As TreeNode = Nothing
        Dim Childnode As TreeNode = Nothing

        Dim MainName As String = String.Empty

        Dim oConnectionString As String = Me.RichTextBox1.Text
        Dim cn As New SqlConnection(oConnectionString)

        Dim adp As New SqlDataAdapter(SQLExpression, cn)

        Dim ds As New DataSet

        adp.Fill(ds, "SystemData")

        Me.TreeView_From.Nodes.Clear()
     
        Rootnode = Me.TreeView_From.Nodes.Add(key:="Root", text:="database name here", _
                                        imageIndex:=0, selectedImageIndex:=0)



        For Each row As DataRow In ds.Tables("SystemData").Rows

            If MainName <> row(0).ToString Then
                Mainnode = Rootnode.Nodes.Add(key:="Table", text:=row(0).ToString, _
                imageIndex:=1, selectedImageIndex:=1)
                MainName = row(0).ToString
            End If

            Childnode = Mainnode.Nodes.Add(key:="Column", text:=row(1).ToString, _
            imageIndex:=2, selectedImageIndex:=2)

        Next

        Me.TreeView_From.Nodes(0).EnsureVisible()
        Me.TreeView_From.ExpandAll()
        Me.TreeView_From.Scrollable = True

        ds.Dispose()
        ds = Nothing
        adp.Dispose()
        adp = Nothing
        cn.Dispose()
        cn = Nothing

    End Sub
0
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 500 total points
ID: 37802105
Yes you are setting the image indices of all the nodes when creating these.

Change this

            Childnode = Mainnode.Nodes.Add(key:="Column", text:=row(1).ToString, _
            imageIndex:=2, selectedImageIndex:=2)


to

            Childnode = Mainnode.Nodes.Add(row(1).ToString)
0
 

Author Closing Comment

by:Murray Brown
ID: 37803169
thanks
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction As chip makers focus on adding processor cores over increasing clock speed, developers need to utilize the features of modern CPUs.  One of the ways we can do this is by implementing parallel algorithms in our software.   One recent…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question