Question

Supposons que j'utilise un menu contextuel pour ajouter des nœuds enfants à un contrôle d'arborescence.

(1) Je clique avec le bouton droit sur le nœud

(2) menu contextuel pop up

(3), puis je clique sur "Ajouter". élément de menu

(4) une boîte de dialogue s'ouvre

(5) J'ai saisi le nom dans cette boîte de dialogue et appuyé sur OK

(6) Un nouveau nœud est créé.

Comment puis-je obtenir la référence du nœud actuel lorsque je clique sur l'élément de menu contextuel?

J'ai besoin de cela car l'objet parent est stocké dans la propriété Tag du nœud actuel.

Était-ce utile?

La solution

Si vous gérez TreeNodeMouseClick , votre TreeNodeMouseClickEventHandler recevra un argument TreeNodeMouseClickEventArgs .

TreeNodeMouseClickEventArgs.Node sera la référence TreeNode souhaitée. Voir le TreeNodeMouseClick docs pour un exemple similaire à:

void treeView1_NodeMouseClick(object sender,  
    TreeNodeMouseClickEventArgs e)
{
    TreeNode theTreeNodeIWant = e.Node

}

Si nécessaire, vous pouvez stocker une référence dans une variable membre afin qu'une autre méthode puisse y accéder.

Autres conseils

Vous pouvez obtenir la position de la souris à partir de

System.Windows.Forms.Cursor.Position

Enregistrez ceci avant d'afficher le menu contextuel.

Utilisez ensuite la méthode de l'arborescence contenant vos éléments

GetChildAtPoint(Point)

et ajoutez un enfant en dessous de cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top