Подтвердить что ты не робот

Щелкните правой кнопкой мыши на .Net TreeNode.

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

В настоящий момент пользователю нужно щелкнуть левой кнопкой мыши node, а затем щелкнуть правой кнопкой мыши, чтобы выбрать.

Можно ли щелкнуть правой кнопкой мыши по node, выберите node - и если да, то какой лучший способ это сделать.

4b9b3361

Ответ 1

Как левый, так и правый клики запускают событие щелчка и приводят к изменению выбора. Однако при определенных обстоятельствах (которые я еще не потрудился отслеживать) выбор изменится с node, который был щелкнул правой кнопкой мыши на первоначально выбранном node.

Чтобы убедиться, что щелчок правой кнопкой мыши изменит выбор, вы можете принудительно изменить выбранный node с помощью события MouseDown:

treeView.MouseDown += (sender, args) =>
    treeView.SelectedNode = treeView.GetNodeAt(args.X, args.Y);

Немного лучше, как указал один из других плакатов, использовать событие NodeMouseClick:

treeView.NodeMouseClick += (sender, args) => treeView.SelectedNode = args.Node;

Ответ 2

да. Здесь обрабатывается событие NodeMouseClick:

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
      treeView1.SelectedNode = e.Node;
}

Ответ 3

Перетащите полосу контекстного меню в форму:

 private void treeView1_MouseDown(object sender, MouseEventArgs e)
 {
   if (e.Button == MouseButtons.Right)
   {
       // Display context menu for eg:
       ContextMenu1.Show();
   }
}