2010-07-02 2 views
1

У меня есть дерево и контекстное меню, которое отображается для каждого узла. У одного узла есть выбор. Теперь я перемещаюсь с помощью мыши на другой узел и открываю контекстное меню с помощью щелчка мыши. Теперь возникает проблема, что выбор по-прежнему находится на старом новом узле. Как я могу предотвратить, что меню всплывает, если пользователь не выбрал узел раньше щелчком мыши? Другими словами, как я могу достичь того, что пользователь должен выбрать treenode раньше обычным щелчком мыши или treenode получает выделение с помощью щелчка правой кнопкой мыши автоматически.Проблема контекстного меню узла дерева дерева Windows Forms

ответ

2

Пробуйте следующий код, который предоставляет вам предварительный выбор 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

контекстного меню имеет событие:

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

Это является сократимым событием. Другими словами, проверьте, есть ли у вас выбранный узел и отмените событие, если вы этого не сделаете, это остановит ваше меню.