Entwickler-Ecke

WinForms - TreeNode wird durch Rechtsklick nicht selektiert


rudolf riegler - Di 23.12.08 00:05
Titel: TreeNode wird durch Rechtsklick nicht selektiert
Hallo zusammen,

seit Tagen plagt mich schon folgendes Problem mit einer TreeView:

Ich habe einen fixen Basisnode mit x Subnodes angelegt.

Klicke ich mit der linken Maustaste auf einen der Subnodes so bekomme ich durch die Eigenschaft "this.tv_kategorien.SelectedNode.Index" den Index des selektierten Nodes.
So weit so gut.

"Selektiere" ich einen Subnode jedoch mit der rechten Maustaste, so wird dieser Node zwar blau hinterlegt, jedoch aktualisiert sich der Index nicht.

Ich hoffe, dass irgendjemand von euch eine Idee hat, wie ich auch mit einem Rechtsklick den Index des selektierten Nodes bekomme.


Gruss
Rudi


raiguen - Di 30.12.08 23:17

Hallo Rudi,

die rechte Maustaste allein selektiert (leider noch) nicht den angeklickten Knoten; die farbige Hinterlegung des Knotens irriteiret ein wenig.
Aber mit einem kleinen 'trick' - eher Code - kannste das wie gewünscht hinbekommen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
    private void treeView1_NodeMouseClick ( object sender, TreeNodeMouseClickEventArgs e )
    {
      if ( e.Button == MouseButtons.Right )
      {  //--den angeklickten Node zum selektierten machen
        treeView1.SelectedNode = e.Node;
        //--nur als 'Anzeige' des wirklich selektierten Knotens
        //Text =  ( treeView1.SelectedNode.Index.ToString ( ) );
      }
    }

Bedenke, dass der Index NUR die Zahl INNERHALB des ChildKnotens ist und NICHT die absolute Indexziffer ab RootKnoten.

Gruss Rainer


JüTho - Mi 31.12.08 12:37

Hallo,

das ist ein gutes Beispiel dafür, warum ich Doppel-Posts in mehreren Foren nicht mag: Dort [http://www.mycsharp.de/wbb2/thread.php?threadid=65501] hat Rudolf schon vor Weihnachten die Lösung erhalten, ohne es hier bekanntzugeben.

Trotzdem Gruß und Frohes Neues Jahr! Jürgen