TreeView.GetNodeAt Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Pobiera węzeł drzewa, który znajduje się w określonej lokalizacji.
Przeciążenia
| Nazwa | Opis |
|---|---|
| GetNodeAt(Point) |
Pobiera węzeł drzewa, który znajduje się w określonym punkcie. |
| GetNodeAt(Int32, Int32) |
Pobiera węzeł drzewa w punkcie z określonymi współrzędnymi. |
GetNodeAt(Point)
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
Pobiera węzeł drzewa, który znajduje się w określonym punkcie.
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
Parametry
Zwraca
W TreeNode określonym punkcie w widoku drzewa (klient) współrzędnych lub null jeśli w tej lokalizacji nie ma węzła.
Uwagi
Możesz przekazać MouseEventArgs.X współrzędne MouseDown i MouseEventArgs.Y zdarzenia jako X wartości i Y nowego Pointelementu .
Zobacz także
Dotyczy
GetNodeAt(Int32, Int32)
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
- Źródło:
- TreeView.cs
Pobiera węzeł drzewa w punkcie z określonymi współrzędnymi.
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
Parametry
Zwraca
W TreeNode określonej lokalizacji w widoku drzewa (klient) współrzędnych lub null jeśli w tej lokalizacji nie ma węzła.
Przykłady
Poniższy przykład kodu umożliwia użytkownikowi edytowanie węzłów drzewa nieroot przy użyciu elementu ContextMenu. Gdy użytkownik kliknie prawym przyciskiem myszy, TreeNode zostanie określona i zapisana w zmiennej o nazwie mySelectedNode. Jeśli wybrano węzeł drzewa niekorzystnego, zostanie on umieszczony w stanie edytowalnym, co umożliwia użytkownikowi edytowanie etykiety węzła. Gdy użytkownik przestanie edytować etykietę węzła drzewa, zostanie oceniony i zapisany nowy tekst etykiety. W tym przykładzie kilka znaków jest uznawanych za nieprawidłowe w tekście etykiety. Jeśli jeden z nieprawidłowych znaków znajduje się w ciągu etykiety lub ciąg jest pusty, użytkownik zostanie powiadomiony o błędzie, a etykieta zostanie zwrócona do poprzedniego tekstu.
/* 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
Uwagi
Jako parametry i można przekazać MouseEventArgs.X współrzędne MouseDown i MouseEventArgs.Y zdarzeniax.y