Leer en inglés

Compartir a través de


TreeView.GetNodeAt Método

Definición

Recupera el nodo de árbol situado en la ubicación especificada.

Sobrecargas

GetNodeAt(Point)

Recupera el nodo de árbol situado en el punto especificado.

GetNodeAt(Int32, Int32)

Recupera el nodo de árbol situado en el punto con las coordenadas especificadas.

GetNodeAt(Point)

Source:
TreeView.cs
Source:
TreeView.cs
Source:
TreeView.cs

Recupera el nodo de árbol situado en el punto especificado.

C#
public System.Windows.Forms.TreeNode GetNodeAt(System.Drawing.Point pt);
C#
public System.Windows.Forms.TreeNode? GetNodeAt(System.Drawing.Point pt);

Parámetros

pt
Point

Point que se utiliza para evaluar y recuperar el nodo.

Devoluciones

El TreeNode en el punto especificado, en coordenadas de la vista de árbol (cliente), o null si no hay ningún nodo en esa ubicación.

Comentarios

Puede pasar las MouseEventArgs.X coordenadas y MouseEventArgs.Y del MouseDown evento como los X valores y Y de un nuevo Point.

Consulte también

Se aplica a

.NET Framework 4.8.1 y otras versiones
Producto Versiones
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

GetNodeAt(Int32, Int32)

Source:
TreeView.cs
Source:
TreeView.cs
Source:
TreeView.cs

Recupera el nodo de árbol situado en el punto con las coordenadas especificadas.

C#
public System.Windows.Forms.TreeNode GetNodeAt(int x, int y);
C#
public System.Windows.Forms.TreeNode? GetNodeAt(int x, int y);

Parámetros

x
Int32

Posición de X que se utiliza para evaluar y recuperar el nodo.

y
Int32

Posición de Y que se utiliza para evaluar y recuperar el nodo.

Devoluciones

TreeNode en la ubicación especificada, en coordenadas de la vista de árbol (cliente), o null si no hay ningún nodo en esa ubicación.

Ejemplos

En el ejemplo de código siguiente se permite al usuario editar nodos de árbol no raíz mediante .ContextMenu Cuando el usuario hace clic con el botón derecho en el mouse, en TreeNode esa posición se determina y se almacena en una variable denominada mySelectedNode. Si se seleccionó un nodo de árbol no raíz, se coloca en un estado editable, lo que permite al usuario editar la etiqueta del nodo. Una vez que el usuario deja de editar la etiqueta del nodo de árbol, el nuevo texto de la etiqueta se evalúa y se guarda. En este ejemplo, se consideran varios caracteres no válidos en el texto de la etiqueta. Si uno de los caracteres no válidos está en la cadena de etiqueta o la cadena está vacía, se notifica al usuario el error y la etiqueta se devuelve al texto anterior.

C#
/* Get the tree node under the mouse pointer and
   save it in the mySelectedNode variable. */
private void treeView1_MouseDown(object sender,
  System.Windows.Forms.MouseEventArgs e)
{
   mySelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}

private void menuItem1_Click(object sender, System.EventArgs e)
{
   if (mySelectedNode != null && mySelectedNode.Parent != null)
   {
      treeView1.SelectedNode = mySelectedNode;
      treeView1.LabelEdit = true;
      if(!mySelectedNode.IsEditing)
      {
         mySelectedNode.BeginEdit();
      }
   }
   else
   {
      MessageBox.Show("No tree node selected or selected node is a root node.\n" +
         "Editing of root nodes is not allowed.", "Invalid selection");
   }
}

private void treeView1_AfterLabelEdit(object sender,
         System.Windows.Forms.NodeLabelEditEventArgs e)
{
   if (e.Label != null)
   {
     if(e.Label.Length > 0)
     {
        if (e.Label.IndexOfAny(new char[]{'@', '.', ',', '!'}) == -1)
        {
           // Stop editing without canceling the label change.
           e.Node.EndEdit(false);
        }
        else
        {
           /* Cancel the label edit action, inform the user, and
              place the node in edit mode again. */
           e.CancelEdit = true;
           MessageBox.Show("Invalid tree node label.\n" +
              "The invalid characters are: '@','.', ',', '!'",
              "Node Label Edit");
           e.Node.BeginEdit();
        }
     }
     else
     {
        /* Cancel the label edit action, inform the user, and
           place the node in edit mode again. */
        e.CancelEdit = true;
        MessageBox.Show("Invalid tree node label.\nThe label cannot be blank",
           "Node Label Edit");
        e.Node.BeginEdit();
     }
   }
}

Comentarios

Puede pasar las MouseEventArgs.X coordenadas y MouseEventArgs.Y del MouseDown evento como los x parámetros y y .

Consulte también

Se aplica a

.NET Framework 4.8.1 y otras versiones
Producto Versiones
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10