Saving a treeview's structure

Hello I have a treeview on a form.  This treeview control is created by the user to show the structure of a specific system.  What I need is a way to save the structure of the treeview control between session.  I'm really not sure how to go about this so if anyone has any idea on how to create this structure in a database.

If you can give me full source on how to do this.  Basically I'm looking for two function SaveSystem and LoadSystem.  If you provide these function I'll triple the points.
Who is Participating?

Improve company productivity with a Business Account.Sign Up

anthonycConnect With a Mentor Commented:
Assuming that the imagelist has all the icons you need in it, then you can do this.. by saving to the registry (this can be adjusted to save to an INI file, which I think is better)

public sub SaveTreeview(tvw as treeview)
  dim nodCur as node
  dim szVal  as string

  for each nodCur in tvw.nodes
     savesetting app.exename, & "_Node" & nodcur.index & "_Key", nodcur.key
     savesetting app.exename, & "_Node" & nodCur.index & "_Text", nodCur.text
     SaveSetting app.exename, & "_Node" & nodcur.index & "_Icon", nodCur.image
     SaveSetting app.exename, & "_Node" & nodcur.index & "_Index" & nodCur.index

     if not nodcur.parent is nothing then
        savesetting app.exename, & "_Node" & nodcur.index & "_Parent" & iif(nodcur.key = "", nodcur.index, nodcur.key)
     end if
  next nodcur
end sub

public sub LoadTreeview(tvw as treeview)
  dim nodCur as node
  dim nIndex as integer
  dim szVal  as string
  dim szkey  as string
  dim szIcon as string
  dim szPar  as string


  nIndex = getsetting(app.exename, & "_Node1_Index", 0)
  do until nIndex = 0
    szKey = getsetting(app.exename, & "_Node" & nIndex & "_Key", "")
    szVal = getsetting(app.exename, & "_Node" & nIndex & "_Text", "")
    szIcon = getsetting(app.exename, & "_Node" & nIndex & "_Icon", "")
    szPar = getsetting(app.exename, & "_Node" & nIndex & "_Parent", "")

    if len(szPar) > 0 then
      set nodCur = tvw.nodes.add(iif(isNumeric(szPar), clng(szPar), szPar), tvwchild, szkey, szval, szicon, szicon)
      set nodCur = tvw.nodes.add(,, szkey, szval, szicon, szicon)
    end if

    nIndex = getsetting(app.exename, & "_Node" & (nIndex + 1) & "_Index", 0)
end sub
How complicated the tree  control is:
1. Is there a need in saving image info
2. How many levels
3. Is it text only, or also keys
4. How big it in general
PCavAuthor Commented:
Question one image info needed.

Question two realistically 3 or 4 levels, but could possible be larger.

It needs to save text, plus 2 other pieces of information (one is in the tag of the node and the other depends on the type of icon the person used (there are only less than 10 icons that won't ever change)

General size less than 100 entries all together in most cases, but again could be larger.
PCavAuthor Commented:
Thank You for your help I don't think I'm gonna use your code.  I gonna save the Treeview control in and XML document.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.