fila - obtener nodo seleccionado treeview c#
Haga clic derecho en seleccionar en.Net TreeNode (3)
Estoy tratando de mostrar un menú emergente en mi vista de árbol cuando los usuarios hacen clic derecho, lo que les permite elegir acciones contextuales para aplicarlas contra el nodo seleccionado.
En este momento, el usuario debe hacer clic con el botón izquierdo y luego hacer clic con el botón derecho para elegir.
¿Es posible hacer clic con el botón derecho en un nodo? Seleccione ese nodo y, de ser así, ¿cuál es el mejor método para hacerlo?
Arrastre una tira de menú contextual en el formulario y luego:
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
// Display context menu for eg:
ContextMenu1.Show();
}
}
Los clics izquierdo y derecho activan un clic y provocan que la selección cambie. Sin embargo, en determinadas circunstancias (que aún no me he molestado en rastrear), la selección cambiará del nodo al que se hizo clic con el botón derecho en el nodo seleccionado originalmente.
Para asegurarse de que el clic derecho cambia la selección, puede cambiar forzosamente el nodo seleccionado utilizando el evento MouseDown
:
treeView.MouseDown += (sender, args) =>
treeView.SelectedNode = treeView.GetNodeAt(args.X, args.Y);
Un poco mejor, como señaló uno de los otros carteles, es utilizar el evento NodeMouseClick
:
treeView.NodeMouseClick += (sender, args) => treeView.SelectedNode = args.Node;
sí. Aquí está procesando para el evento NodeMouseClick
:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
treeView1.SelectedNode = e.Node;
}