Autor Beitrag
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Do 05.02.09 08:04 
Moin,

also das sind so die 2. oder 3. Schritte von mir. Aktuell habe ich ein Treeview und löse im AfterSelect der Nodes eine Aktion aus. Nun muss ich überprüfen, ob der Node noch zum selben Child gehört oder zu einem anderen. Vielleicht als Vergleich zur Erklärung:

Wenn man sich das als Explorer vorstellt: Ich wähle C:\ aus, gehe dann auf Eigene Dateien und dann auf Windows. Windows gehört nicht mehr zu Eigene Dateien, wohl aber noch zu C:\.

Die Parents (C:\) kann ich ganz gut unterscheiden, aber dann hörts bei mir gerade auf. Ansonsten könnte man das auch lösen, wenn man sich vom Node immer bis zur 0. Ebene die Parents sucht, aber da bekom ich gerade Hirnknoten. Wer kann mir helfen? :)

Danke!

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 05.02.09 08:35 
Hallo,

vlt. merkst du dir, welchen Node du zuletzt verarbeitet (im AfterSelect) hast. Wenn das Event erneut zuschlägt überprüfst du, ob das gemerkt Node dem ParentNode vom neuen entspricht. Ist dies so, so wurde ein Child-Node ausgewählt.

Dies funktioniert aber nur, bei einer Tiefe. Willst du "vertikal" mehrere Ebenen sprünge erlauben, solltest du dir in einer Liste alle Parents merken und diese auf "isParent" überprüfen.

Gruß Daniel
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Do 05.02.09 10:53 
Danke, anstatt mit dem hin- und hergespringe, löse ich es jetzt rückwärts. Da ich eh den Parent suchen muss, war der Rest dann einfach umzusetzen. Erschien mir dann doch logischer ;) Hier der Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
int i;
cCode = "";
pNode =  tV.SelectedNode;
if (pNode.Level != 0)
{
  for (i = pNode.Level; i >= 0; i--) { 
    cCode = pNode.Text + cCode;
    pNode = pNode.Parent;
  }
}
else
{
  cCode = pNode.Text;
}

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.