Проблема контекстного меню узла дерева форм Windows Forms - PullRequest
1 голос
/ 02 июля 2010

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

Ответы [ 2 ]

2 голосов
/ 05 июля 2010

Попробуйте следующий код, который обеспечивает предварительный выбор триода.

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 голос
/ 02 июля 2010

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

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

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

...