Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

TreeView.AfterLabelEdit Event

Definition

Namespace:
System.Windows.Forms
Assembly:
System.Windows.Forms.dll
Source:
TreeView.cs
Source:
TreeView.cs
Source:
TreeView.cs
Source:
TreeView.cs
Source:
TreeView.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Occurs after the tree node label text is edited.

public:
 event System::Windows::Forms::NodeLabelEditEventHandler ^ AfterLabelEdit;
public event System.Windows.Forms.NodeLabelEditEventHandler AfterLabelEdit;
public event System.Windows.Forms.NodeLabelEditEventHandler? AfterLabelEdit;
member this.AfterLabelEdit : System.Windows.Forms.NodeLabelEditEventHandler 
Public Custom Event AfterLabelEdit As NodeLabelEditEventHandler 

Event Type

Examples

The following code example lets the user edit nonroot tree nodes by using a ContextMenu. When the user right clicks the mouse, the TreeNode at that position is determined and stored in a variable named mySelectedNode. If a nonroot tree node was selected, it is put into an editable state, which allows the user to edit the node label. After the user stops editing the tree node label, the new label text is evaluated and saved. For this example, several characters are considered not valid in the label text. If one of the invalid characters is in the label string, or the string is empty, the user is notified of the error and the label is returned to its previous text.

 /* 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

Remarks

For more information about how to handle events, see Handling and Raising Events.

Applies to

See also


Feedback

Was this page helpful?