TreeView.GetNodeAt Methode

Definition

Ruft den Strukturknoten ab, der sich an der angegebenen Position befindet.

Überlädt

Name Beschreibung
GetNodeAt(Point)

Ruft den Strukturknoten ab, der sich am angegebenen Punkt befindet.

GetNodeAt(Int32, Int32)

Ruft den Strukturknoten am Punkt mit den angegebenen Koordinaten ab.

GetNodeAt(Point)

Quelle:
TreeView.cs
Quelle:
TreeView.cs
Quelle:
TreeView.cs
Quelle:
TreeView.cs
Quelle:
TreeView.cs

Ruft den Strukturknoten ab, der sich am angegebenen Punkt befindet.

public:
 System::Windows::Forms::TreeNode ^ GetNodeAt(System::Drawing::Point pt);
public System.Windows.Forms.TreeNode GetNodeAt(System.Drawing.Point pt);
public System.Windows.Forms.TreeNode? GetNodeAt(System.Drawing.Point pt);
member this.GetNodeAt : System.Drawing.Point -> System.Windows.Forms.TreeNode
Public Function GetNodeAt (pt As Point) As TreeNode

Parameter

pt
Point

Der Point zu evaluieren und abzurufende Knoten aus.

Gibt zurück

Der TreeNode angegebene Punkt, in der Strukturansicht (Client)-Koordinaten oder null wenn an dieser Position kein Knoten vorhanden ist.

Hinweise

Sie können die Und-Koordinaten MouseEventArgs.X des MouseEventArgs.Y Ereignisses als die MouseDown Werte X und Werte eines neuen YEreignisses Point übergeben.

Weitere Informationen

Gilt für:

GetNodeAt(Int32, Int32)

Quelle:
TreeView.cs
Quelle:
TreeView.cs
Quelle:
TreeView.cs
Quelle:
TreeView.cs
Quelle:
TreeView.cs

Ruft den Strukturknoten am Punkt mit den angegebenen Koordinaten ab.

public:
 System::Windows::Forms::TreeNode ^ GetNodeAt(int x, int y);
public System.Windows.Forms.TreeNode GetNodeAt(int x, int y);
public System.Windows.Forms.TreeNode? GetNodeAt(int x, int y);
member this.GetNodeAt : int * int -> System.Windows.Forms.TreeNode
Public Function GetNodeAt (x As Integer, y As Integer) As TreeNode

Parameter

x
Int32

Die X Position, aus der der Knoten ausgewertet und abgerufen werden soll.

y
Int32

Die Y Position, aus der der Knoten ausgewertet und abgerufen werden soll.

Gibt zurück

Die TreeNode an der angegebenen Position, in der Strukturansicht (Client)-Koordinaten oder null wenn an diesem Speicherort kein Knoten vorhanden ist.

Beispiele

Im folgenden Codebeispiel kann der Benutzer nichtroot-Strukturknoten mithilfe einer ContextMenu. Wenn der Benutzer mit der rechten Maustaste auf die Maus klickt, wird die TreeNode Position bestimmt und in einer Variablen mit dem Namen mySelectedNodegespeichert. Wenn ein Nicht-Stammstrukturknoten ausgewählt wurde, wird er in einen bearbeitbaren Zustand versetzt, sodass der Benutzer die Knotenbeschriftung bearbeiten kann. Nachdem der Benutzer die Bearbeitung der Strukturknotenbezeichnung beendet hat, wird der neue Beschriftungstext ausgewertet und gespeichert. In diesem Beispiel werden mehrere Zeichen im Beschriftungstext als ungültig angesehen. Wenn sich eines der ungültigen Zeichen in der Bezeichnungszeichenfolge befindet oder die Zeichenfolge leer ist, wird der Benutzer über den Fehler benachrichtigt, und die Beschriftung wird an den vorherigen Text zurückgegeben.

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

   void menuItem1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      if ( mySelectedNode != nullptr && mySelectedNode->Parent != nullptr )
      {
         treeView1->SelectedNode = mySelectedNode;
         treeView1->LabelEdit = true;
         if (  !mySelectedNode->IsEditing )
         {
            mySelectedNode->BeginEdit();
         }
      }
      else
      {
         MessageBox::Show( String::Concat( "No tree node selected or selected node is a root node.\n",
            "Editing of root nodes is not allowed." ), "Invalid selection" );
      }
   }

   void treeView1_AfterLabelEdit( Object^ /*sender*/,
      System::Windows::Forms::NodeLabelEditEventArgs^ e )
   {
      if ( e->Label != nullptr )
      {
         if ( e->Label->Length > 0 )
         {
            array<Char>^ temp0 = {'@','.',',','!'};
            if ( e->Label->IndexOfAny( temp0 ) == -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( String::Concat( "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();
         }
      }
   }
/* 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();
     }
   }
}
' Get the tree node under the mouse pointer and
' save it in the mySelectedNode variable. 
Private Sub treeView1_MouseDown(sender As Object, _
  e As System.Windows.Forms.MouseEventArgs)
        
   mySelectedNode = treeView1.GetNodeAt(e.X, e.Y)
End Sub    
    
Private Sub menuItem1_Click(sender As Object, e As System.EventArgs)
   If Not (mySelectedNode Is Nothing) And _
     Not (mySelectedNode.Parent Is Nothing) Then
      treeView1.SelectedNode = mySelectedNode
      treeView1.LabelEdit = True
      If Not mySelectedNode.IsEditing Then
         mySelectedNode.BeginEdit()
      End If
   Else
      MessageBox.Show("No tree node selected or selected node is a root node." & _
        Microsoft.VisualBasic.ControlChars.Cr & _
        "Editing of root nodes is not allowed.", "Invalid selection")
   End If
End Sub    
    
Private Sub treeView1_AfterLabelEdit(sender As Object, _
  e As System.Windows.Forms.NodeLabelEditEventArgs)
   If Not (e.Label Is Nothing) Then
      If e.Label.Length > 0 Then
         If e.Label.IndexOfAny(New Char() {"@"c, "."c, ","c, "!"c}) = -1 Then
            ' 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." & _
              Microsoft.VisualBasic.ControlChars.Cr & _
              "The invalid characters are: '@','.', ',', '!'", _
              "Node Label Edit")
            e.Node.BeginEdit()
         End If
      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." & _
           Microsoft.VisualBasic.ControlChars.Cr & _
           "The label cannot be blank", "Node Label Edit")
           e.Node.BeginEdit()
      End If
   End If
End Sub

Hinweise

Sie können die MouseEventArgs.X Und-Koordinaten MouseEventArgs.Y des MouseDown Ereignisses als parameter xy übergeben.

Weitere Informationen

Gilt für: