Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo TreeView.GetNodeAt (Int32, Int32)

 

Data di pubblicazione: ottobre 2016

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

Spazio dei nomi:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public TreeNode GetNodeAt(
	int x,
	int y
)

Parametri

x
Type: System.Int32

Il X posizione da valutare e recuperare il nodo.

y
Type: System.Int32

Il Y posizione da valutare e recuperare il nodo.

Valore restituito

Type: System.Windows.Forms.TreeNode

Il TreeNode nella posizione specificata, in base alle coordinate (client) della visualizzazione albero o null se è presente alcun nodo in quella posizione.

È possibile passare il MouseEventArgs.X e MouseEventArgs.Y coordinate di MouseDown eventi come il x e y parametri.

Esempio di codice seguente consente all'utente di modificare i nodi non principali della struttura ad albero utilizzando un ContextMenu. Quando si clic destro mouse, la TreeNode che viene individuato e archiviati in una variabile denominata mySelectedNode. Se è stato selezionato un nodo dell'albero non principali della, 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 dell'albero viene salvato il nuovo testo dell'etichetta. Per questo esempio, alcuni caratteri sono considerati non validi nel testo dell'etichetta. Se uno dei caratteri non validi è nella stringa di etichetta o la stringa è vuota, l'utente viene informato dell'errore e viene restituita l'etichetta per il testo precedente.

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

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: