AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[C#] TreeView im Thread ändern?

Ein Thema von xZise · begonnen am 24. Aug 2009 · letzter Beitrag vom 24. Aug 2009
 
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [C#] TreeView im Thread ändern?

  Alt 24. Aug 2009, 19:37
Ich drücke es mal so aus Aufgrund des "Delphi oder C#" Threads bin ich wieder zu C# gestoßen (ich hatte mich KURZZEITIG) damit beschäftigt Deshalb verzeihe mir die etwas "krude" Groß/Kleinschreibung

Auch die Trennung zwischen Sub/Basepath ist inzwischen auch hinfällig. Und was meinst du damit, die DirectoryInfo zu übergeben?
[edit]So jetzt habe ich mal SearchPath "verbessert" (ich hoffe es):
Code:
private int SearchPath(DirectoryInfo workingDir, TreeNodeCollection root)
{
    int fileCnt = 0;

    foreach (DirectoryInfo subDir in workingDir.GetDirectories())
    {
        TreeNode tn = new TreeNode(subDir.Name);
        tn.Checked = true;
        if (SearchPath(subDir, tn.Nodes) > 0)
        {
            root.Add(tn);
            fileCnt++;
        }
    }
    foreach (FileInfo DfmFile in workingDir.GetFiles("*.dfm"))
    {
        TreeNodePlus tn = new TreeNodePlus(DfmFile.Name);
        tn.Checked = true;
        tn.Entry = new DfmEntry(DfmFile.FullName);
        root.Add(tn);
        fileCnt++;
    }
    return fileCnt;
}
  • Parameter & Variablen klein (okay DfmFile nicht fällt mir gerade auf)
  • Ein Bug behoben, dass Dateien in "tieferen" Ordnern, übersprungen wurden
  • Kein Pfad sondern ein DirectoryInfo Objekt (das ändert auch den Aufruf unten: SearchPath(new DirectoryInfo(SelPath + "\\"), Root.Nodes);)
[/edit]

Zum Eigentlichen Thema. Also ich habe das jetzt so (wahrscheinlich nicht gerade hübsch ^^ aber es geht erstmal) gelöst:
Code:
private void BWThread_DoWork(object sender, DoWorkEventArgs e)
{
    TreeNode Root = new TreeNode();
    SearchPath(SelPath + "\\", "", Root.Nodes);
    e.Result = Root;
}

private void BWThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    // Thread ist fertig: Ladebalken raus, Einträge eintragen :P
    TVTree.BeginUpdate();
    try
    {
        TreeNode ThreadRoot = (TreeNode)e.Result;
        TVTree.Nodes.Clear();
        foreach (TreeNode node in ThreadRoot.Nodes)
        {
            TVTree.Nodes.Add(node);
        }
        TVTree.Enabled = true;
    }
    finally
    {
        PLoading.Hide();
        TVTree.EndUpdate();
    }
}
MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz