Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
c++ week
Avatar
Ladislav Niderle:13.1.2016 10:14

Ahoj, byl by někdo ochoten mi poradit? Mám aplikaci, která prochází počítač a hlavní složky jsou viděny ve stromě. Tu část mám v pohodě udělanou, ale při uzavření aplikace si chci zapamatovat danou cestu, která byla naposledy načtena. S tím taky nemám problém, ale problém mám s tím, že při opětovném spuštění a následném načtení infromace co bylo naposledy otevřeno nevím, jak zařídit, aby v Treeview mi tu cesturozbalil. Samotná data ze složky jsem schopen načíst, ale není to pěkné, abych načetl dané data a přitom to neodpovídalo tomu, co je rozbalené, nebo v mém případě tomu, že nemám nic rozbaleno.

Předem moc děkuji za pomoc

 
Odpovědět
13.1.2016 10:14
Avatar
cmuch
Člen
Avatar
Odpovídá na Ladislav Niderle
cmuch:18.1.2016 6:15

Ahoj,
já to mám dělané takto v VB.NET, kde si složku také načítam odjinud.

' nacteni frm
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 ' when our component is loaded, we initialize the TreeView by adding the root node
        Dim mRootNode As New TreeNode
        mRootNode.Text = CestaDefault
        mRootNode.Tag = CestaDefault
        mRootNode.Name = CestaDefault.ToLower
        mRootNode.Nodes.Add("*DUMMY*")
        TreeView1.Nodes.Add(mRootNode)

        'Zobrazeni rootu
        'look for a node with a text property value of 'Node3'
        TreeView1.SelectedNode = GetNode(CestaDefault, TreeView1.Nodes)

        'ensure the focus set on the node
        TreeView1.Select()

        'zobrazeni vybrane slozky (musí být dvakrat pro prvotni inicializaci)
        ZobrazeniVybraneSlozky(CestaDefault)
        ZobrazeniVybraneSlozky(CestaDefault)
End Sub
' Zobrazeni vybrane slozky
    Private Sub ZobrazeniVybraneSlozky(Slozka As String)
        'look for a node with a text property value of 'Node3'
        TreeView1.SelectedNode = GetNode(Slozka, TreeView1.Nodes)

        'ensure the focus set on the node
        TreeView1.Select()

        refreshView(Me.TreeView1.SelectedNode) ' aktualizace slozky

    End Sub

    ' funkce pro zjisteni vybrane slozky v treeview
    Private Function GetNode(ByVal text As String, ByVal parentCollection As TreeNodeCollection) As TreeNode

        Dim ret As TreeNode
        Dim child As TreeNode

        For Each child In parentCollection 'step through the parentcollection
            If child.Text = text Then
                ret = child
            ElseIf child.GetNodeCount(False) > 0 Then ' if there is child items then call this function recursively
                ret = GetNode(text, child.Nodes)
            End If

            If Not ret Is Nothing Then Exit For 'if something was found, exit out of the for loop

        Next

        Return ret

    End Function

Je to výběr jen první složky, nějakou delší cestu jsem nezkoušel rozbalovat.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
18.1.2016 6:15
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Ladislav Niderle:18.1.2016 8:53

Děkuji

 
Nahoru Odpovědět
18.1.2016 8:53
Avatar
Standa Hlodavec:9.5.2016 11:38

Tohle by mohlo pomoct. Je to sice anglicky, ale v c# a ta struktura procházení adresářů je tam jasná:

http://c-treeview.com/…d-Nodes.html

 
Nahoru Odpovědět
9.5.2016 11:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.