TreeView.GetNodeAt Metodo

Definizione

Recupera il nodo dell'albero che si trova nella posizione specificata.

Overload

GetNodeAt(Point)

Recupera il nodo dell'albero che si trova nel punto specificato.

GetNodeAt(Int32, Int32)

Recupera il nodo dell'albero nel punto specificato dalle coordinate.

GetNodeAt(Point)

Origine:
TreeView.cs
Origine:
TreeView.cs
Origine:
TreeView.cs

Recupera il nodo dell'albero che si trova nel punto specificato.

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

Parametri

pt
Point

Oggetto Point da valutare e da cui recuperare il nodo.

Restituisce

Oggetto TreeNode nel punto specificato, in base alle coordinate (client) della visualizzazione struttura ad albero oppure null se non esiste alcun nodo in quella posizione.

Commenti

È possibile passare le MouseEventArgs.X coordinate e MouseEventArgs.Y dell'evento MouseDown come X valori e Y di un nuovo Pointoggetto .

Vedi anche

Si applica a

.NET Framework 4.8.1 e altre versioni
Prodotto Versioni
.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)

Origine:
TreeView.cs
Origine:
TreeView.cs
Origine:
TreeView.cs

Recupera il nodo dell'albero nel punto specificato dalle coordinate.

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

Parametri

x
Int32

Posizione X da valutare e da cui recuperare il nodo.

y
Int32

Posizione Y da valutare e da cui recuperare il nodo.

Restituisce

Oggetto TreeNode nella posizione specificata, in base alle coordinate (client) della visualizzazione struttura ad albero oppure null se non esiste alcun nodo in quella posizione.

Esempio

L'esempio di codice seguente consente all'utente di modificare i nodi dell'albero nonroot usando un oggetto ContextMenu. Quando l'utente fa clic con il pulsante destro del mouse, l'oggetto TreeNode in tale posizione viene determinato e archiviato in una variabile denominata mySelectedNode. Se è stato selezionato un nodo della struttura ad albero nonroot, viene inserito in uno stato modificabile, che consente all'utente di modificare l'etichetta del nodo. Dopo che l'utente smette di modificare l'etichetta del nodo della struttura ad albero, il testo della nuova etichetta viene valutato e salvato. Per questo esempio, diversi caratteri sono considerati non validi nel testo dell'etichetta. Se uno dei caratteri non validi si trova nella stringa di etichetta o se la stringa è vuota, l'utente riceve una notifica dell'errore e l'etichetta viene restituita al testo precedente.

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();
     }
   }
}

Commenti

È possibile passare le MouseEventArgs.X coordinate e MouseEventArgs.Y dell'evento MouseDown come x parametri e y .

Vedi anche

Si applica a

.NET Framework 4.8.1 e altre versioni
Prodotto Versioni
.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