?
Solved

VB.net TreeView image list populating all nodes problem

Posted on 2012-04-01
5
Medium Priority
?
1,903 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 2000 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: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

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

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

762 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