Щелкните правой кнопкой мыши на .Net TreeNode.
Я пытаюсь показать всплывающее меню в своем древовидном представлении, когда пользователи щелкают правой кнопкой мыши - это позволяет им выбирать действия, чувствительные к контексту, для применения к выбранному node.
В настоящий момент пользователю нужно щелкнуть левой кнопкой мыши node, а затем щелкнуть правой кнопкой мыши, чтобы выбрать.
Можно ли щелкнуть правой кнопкой мыши по node, выберите node - и если да, то какой лучший способ это сделать.
Ответы
Ответ 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();
}
}