У меня есть дерево и контекстное меню, которое отображается для каждого узла. У одного узла есть выбор. Теперь я перемещаюсь с помощью мыши на другой узел и открываю контекстное меню с помощью щелчка мыши. Теперь возникает проблема, что выбор по-прежнему находится на старом новом узле. Как я могу предотвратить, что меню всплывает, если пользователь не выбрал узел раньше щелчком мыши? Другими словами, как я могу достичь того, что пользователь должен выбрать treenode раньше обычным щелчком мыши или treenode получает выделение с помощью щелчка правой кнопкой мыши автоматически.Проблема контекстного меню узла дерева дерева Windows Forms
1
A
ответ
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
Это является сократимым событием. Другими словами, проверьте, есть ли у вас выбранный узел и отмените событие, если вы этого не сделаете, это остановит ваше меню.