2010-07-02 8 views
1

Je TreeView et un menu contextuel qui apparaît pour chaque nœud. Un noeud a la sélection. Je me déplace maintenant avec la souris vers un autre nœud et ouvre le menu contextuel avec un clic droit de la souris. Maintenant, il y a le problème, que la sélection est toujours sur l'ancien nouveau noeud. Comment puis-je éviter que le menu apparaît, si l'utilisateur n'a pas sélectionné le nœud avant par une sélection de clic de souris? Autrement dit, comment puis-je obtenir que l'utilisateur doit sélectionner le treenode avant par un clic de souris normale ou treenode obtient la sélection avec le clic droit de la souris automatiquement.Windows Forms nœud TreeView menu contextuel problème

Répondre

2

Essayez le code suivant, qui vous donne une présélection du treenode.

TreeNode treeNodeAtMousePosition = this.treeView1.GetNodeAt(this.treeView1.PointToClient(Control.MousePosition)); 
TreeNode selectedTreeNode = this.treeView1.SelectedNode; 
if (treeNodeAtMousePosition != null) 
{ 
    if (treeNodeAtMousePosition != selectedTreeNode) 
      treeView1.SelectedNode = treeNodeAtMousePosition; 
}     
1

Le menu contextuel est un événement:

http://msdn.microsoft.com/en-us/library/ms229721.aspx

Ceci est un événement résiliable. En d'autres termes, le test pour voir si vous avez un noeud sélectionné et annuler l'événement si vous ne le faites pas - il arrêtera votre menu de montrer.

Questions connexes