2009-08-04 4 views
-1

J'ai ajouté un menu contextuel (ajouter, annuler) à l'arborescence de façon dynamique. Maintenant, je veux montrer la valeur du nœud de l'arbre sélectionné lorsque je clique sur l'élément de menu contextuel.C# winforms menu contextuel événements problème

Comment puis-je faire cela?

+4

Quel est le problème? –

+0

ya-je effacer le problème désolé – Nagu

Répondre

1

Je suppose que vous avez juste besoin de connaître le texte du treenode? Ce code devrait faire le travail

string treeNodeText = this.treeView1.SelectedNode.Text; 
2

Je suppose que vous voulez savoir quel nœud a été cliqué avec le bouton droit lorsque le menu contextuel est ouvert?

Pour le déterminer, vous pouvez gérer l'événement mousedown sur l'arborescence et vous assurer que le nœud sur lequel vous avez cliqué avec le bouton droit de la souris est sélectionné avant l'affichage du menu contextuel.

private void treeView1_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      var node = treeView1.HitTest(e.X, e.Y).Node; 
      treeView1.SelectedNode = node; 
     } 
    } 

Dans le gestionnaire de clic de ToolStripMenuItem vous pouvez vérifier treeView1.SelectedNode, il sera nul si l'utilisateur a cliqué sur le droit en dehors d'un nœud TreeView.

private void addToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     if (treeView1.SelectedNode != null) MessageBox.Show("Node selected: " + treeView1.SelectedNode.Text); 
    } 
Questions connexes