TreeView Knoten makieren

Cäptin Pommes

Erfahrenes Mitglied
Hallo,

ich habe in meinen Projekt (C#) einen TreeView und will das der User per rechtsklickt auf einen Knoten einen weiteren Knoten erstellen kann als Unterknoten. Prinziepiell kein problem aber wenn man rechtklickt spring die makierung sofort wieder um.

hier mal ein beispiel:

KnotenA ist aktuell makiert und bei KnotenB soll ein Unterknoten erstellt werden, wenn man nun rechtsklickt auf KnotenB springt die selection kurz auf KnotenB aber nur solange bis man die Maustaste loslässt. Danach ist sofort wieder KnotenA selectiert ...
Wie kann ich das problem lösen?
 
Hallo,

Du kannst zum Beispiel bei deinem Control einen MouseDown-Eventhandler hinzufügen und wenn es die rechte Taste war kannst du anhand der Koordinaten prüfen welches Item darunter liegt. Dann selektierst du dieses.

Gruss
Muepe
 
Hi

Die Koordinaten der TreeItems brauchst du nicht. Du hast die Position der Maus. Über die Methode GetItemAt kannst du die ein TreeItem an der Mausposition abfragen. Ein Beispiel dazu findest du im MSDN
 
habs jetzt so gemacht ^^

Code:
void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            treeView1.SelectedNode = e.Node;
        }
 
Hey,

Nico meint glaub ich folgende Methode,

C#:
             if (e.Button.Equals(MouseButtons.Right))
            {
                rightClickSelectedNode = treeView.GetNodeAt(e.X, e.Y);
            }

aber um es danach "markieren" zu können, ist etwas schwieriger oder aufwendiger, da das die lib nicht hergibt, muss man das manuell machen, also den vorherigen deselektieren und den neuen in entsprechender Farbe markieren!

Viele Grüße
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück