Announcement

Collapse
No announcement yet.

TreeView neu laden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Ja na man lernt ja aus Fehlern oder versucht es zumindest.

    Ich weiß zwar nicht was du jetzt mit "Haupt-Teil" meinst, aber eigendlich sollte es das tun ja.
    C# bringt mich noch um den Verstand

    Comment


    • #17
      So ich hab mich da jetzt mal dran versucht hab leider vorher keine Zeit gefunden...

      Habe mir eine Methode geschrieben:

      [highlight=c#]
      public void laden()
      {
      DirectoryInfo di = new DirectoryInfo((string)treeView1.SelectedNode.Tag);
      foreach (DirectoryInfo dir in di.GetDirectories())
      {
      TreeNode tn1 = new TreeNode();
      tn1.Tag = (string)dir.FullName;
      tn1.Text = dir.Name;
      treeView1.Nodes.Add(tn1);
      }
      // knoten expand
      treeView1.SelectedNode.Expand();
      }
      [/highlight]

      So das Problem ist nur er schreibt den neuen Ordner an den Wurzelknoten und nicht an den gewählten. Da ist der Ordner dann nach erneutem anklicken auch drin aber wird eben nicht geladen. Und der angezeigt Ordner ist gar kein "richtiger" Ordner der erscheint nur in der treeView...
      Irgendwie hab ich da doch bestimmt einen denkfehler drin oder?
      C# bringt mich noch um den Verstand

      Comment


      • #18
        Code:
        treeview1.Nodes.Add(tnl)
        Diese Zeile fügt einen Knoten IMMER als Wurzelknoten ein. Du musst vorher den Knoten suchen in den der neue Knoten reingehört und diesen dort einfügen.
        Jedem Knoten können können weitere Knoten als Kinder hinzugefügt werden.

        Comment


        • #19
          Ach mensch stimmt hätt ich auch selbst sehen können

          Dann werd ich mich mal auf die Suche nach dem gewählten Knoten begeben
          C# bringt mich noch um den Verstand

          Comment


          • #20
            Viel Glück bei der Suche

            Comment


            • #21
              Nun fällt mir gerade auf das die Lösung gar nich so is wie ich das haben wollte ...
              Das ganze funktioniert ja nun bloß wenn ich einen Ordner hinzufüge, was mach ich dann aber wenn ich einen Ordner lösche?
              Da muss die TreeView ja auch neu geladen werden...
              Muss ich da jetzt noch eine Methode schreiben oder kann man die doch irgendwie in Einklang bringen?
              C# bringt mich noch um den Verstand

              Comment


              • #22
                Genauso wie beim Einfügen suchst Du Dir den Knoten aus der gelöscht werden sollten und entfernst diesen aus dem TreeView an der entsprechenden Stelle.

                Comment


                • #23
                  Ok das war jetzt ne blöde Frage von mir seh ich gerade.
                  Wollte immer delete schreiben gabs aber nich daher gings nich... hab denn mal Remove genommen und funktioniert natürlich
                  Zuletzt editiert von kattzze; 16.03.2010, 14:55.
                  C# bringt mich noch um den Verstand

                  Comment


                  • #24
                    Zur vollständigkeit hier der Code der Methode:

                    [highlight=c#]
                    private void laden()
                    {
                    treeView1.SelectedNode.Nodes.Clear();
                    DirectoryInfo di = new DirectoryInfo((string)treeView1.SelectedNode.Tag);
                    foreach (DirectoryInfo dir in di.GetDirectories())
                    {
                    TreeNode tn1 = new TreeNode();
                    tn1.Tag = (string)dir.FullName;
                    tn1.Text = dir.Name;
                    treeView1.SelectedNode.Nodes.Add(tn1);
                    treeView1.SelectedNode.Expand();
                    }
                    }
                    [/highlight]
                    C# bringt mich noch um den Verstand

                    Comment


                    • #25
                      Listview Laden

                      So nun hab ich das ganze versucht auch irgendwie für meine Listview hin zu bekommen aber das funktioniert irgendwie nicht.
                      Ich kann ja nicht das ganze AfterSelekt ereignis von der TreeView als methode schreiben um beim Kopieren einer Datei die Listview neu zu laden oder? Das ist doch sehr unschön...

                      Aber wie bekomm ich es dann hin, dass mir die Datei nach dem Einfügen auch gleich in meiner Listview angezeigt wird, ohne das ich erst aus dem Ordner raus muss und ihn dann wieder neu anklicke?
                      C# bringt mich noch um den Verstand

                      Comment


                      • #26
                        Genauso wie beim Baum auch.... -.- Sorry wenn ich das jetzt sag, aber manchmal weiss man echt nicht ob das ernst gemeint ist.

                        Wenn Du eine Datei einfügst und der Ordner ist gerade offen erzeugst Du einen entsprechendes Item für Deine ListView. Genau dasselbe Verfahren wie beim Baum auch.

                        Comment


                        • #27
                          Das hab ich ja versucht aber es passiert nichts...
                          Sonst würd ich ja nich fragen.
                          Hab mir ja gedacht das es eigendlich nichts anderes sein kann aber da nichts passiert was soll ich da machen... Wenn keine Fehlermeldung nichts kommt.

                          Edit: Hatte es jetzt überwacht. Die Methode wurde gar nicht komplett durchlaufen. Er ist gar nicht bis zum Add gekommen darum wurde auch nichts hinzugefügt...
                          ich hatte vergessen das
                          Code:
                          treeView1.SelectedNode.Nodes.Add(tn1);
                          aus der Methode raus zu nehmen und da hat er dann immer aufgehört ...
                          Zuletzt editiert von kattzze; 17.03.2010, 11:28.
                          C# bringt mich noch um den Verstand

                          Comment

                          Working...
                          X