Announcement

Collapse
No announcement yet.

Welcher Knoten der treeView hat Kontextmenü aufgerufen?

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

  • Welcher Knoten der treeView hat Kontextmenü aufgerufen?

    Und noch eine kleine Frage bezüglich
    Windows Forms
    TreeViews
    ContextMenu

    Ich habe eine TreeView, deren einzelne Knoten über ContextMenüs verfügen. Wenn ich nun das Kontextmenü eines Knoten aktiviere, kann ich einen Eintrag des Kontextmenüs nutzen.

    Nehmen wir an, ich würde im Kontextmenü anbieten, den Pfad des Knoten anzuzeigen. Woher bekomme ich dann die Information, welcher Knoten der treeView das Kontextmenü aufgerufen hat?

    Jetzt dachte ich eigentlich, ich käme mit
    Code:
    treeView1.SelectedNode
    an den entsprechenden Knoten ran. Aber falsch gedacht. Wenn ich das Kontextmenü eines Knotens aktiviere, so färbt er diesen Knoten zwar um, aber selektiert bleibt der Knoten, der vorher selektiert war.
    Wo liegt der Trick?

  • #2
    Ist ein wenig tricky, da die Node nicht sofort selektiert wird. Also anstatt des Click-Handlers verwendest du den MouseClick-Handler.
    Code:
    private void treeView1_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
            treeView1.SelectedNode = treeView1.GetNodeAt(new Point(e.X, e.Y));
        nodeNameToolStripMenuItem.Text = "NodeName: " + treeView1.SelectedNode.Text;
    }
    Darin setzt du manuell die SelectedNode aufgrund der Koordinaten des zugrundeliegenden Mausklicks. In meinem Beispiel (nur eine Demo, daher keine schöne Benennung) wird der Name des Context-Menü-Eintrags entsprechend gesetzt, um das Ergebnis gut sichtbar zu machen.
    .NET GUI - DIE Community für GUI-Entwickler

    Living.NET - Blog :: Live Blog :: .NET Casts

    Hol' dir jetzt dein kostenloses .NET BlogBook.

    Comment


    • #3
      super, Danke!

      Man da gibt es so viele Möglichkeiten bei den Windows Forms,
      ich bin immer wieder begeistert, wie wenig man letztendlich selbst
      programmieren muss

      Comment


      • #4
        Wirklich tolle Antwort!!

        Wurde von mir positiv Bewertet.
        Obwohl ich immer noch nicht herausgefunden habe, was das für einen Effekt hat.
        Deshalb hab ich auch hier eine Bemerkung Plaziert:
        http://entwickler-forum.de/showthread.php?t=41133
        Grüße,

        Martin

        Comment


        • #5
          Schön wenn ich helfen konnte!
          .NET GUI - DIE Community für GUI-Entwickler

          Living.NET - Blog :: Live Blog :: .NET Casts

          Hol' dir jetzt dein kostenloses .NET BlogBook.

          Comment

          Working...
          X