NodeLabelEditEventArgs-Klasse
Stellt Daten für das BeforeLabelEdit-Ereignis und das AfterLabelEdit-Ereignis bereit.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public Class NodeLabelEditEventArgs
Inherits EventArgs
'Usage
Dim instance As NodeLabelEditEventArgs
public class NodeLabelEditEventArgs : EventArgs
public ref class NodeLabelEditEventArgs : public EventArgs
public class NodeLabelEditEventArgs extends EventArgs
public class NodeLabelEditEventArgs extends EventArgs
Hinweise
Das AfterLabelEdit-Ereignis tritt ein, wenn der Benutzer die Bearbeitung des Textes für einen Strukturknoten beendet. Das BeforeLabelEdit-Ereignis tritt ein, wenn der Benutzer mit der Bearbeitung des Textes für einen Strukturknoten beginnt. Ein NodeLabelEditEventArgs-Objekt gibt den neuen Text an, der dem Strukturknoten zugeordnet wird, sowie den Strukturknoten, der die zu bearbeitende Bezeichnung enthält. Außerdem gibt es an, ob der Bearbeitungsvorgang abgebrochen wurde.
Weitere Informationen über die Behandlung von Ereignissen finden Sie unter Behandeln von Ereignissen.
Beispiel
Im folgenden Beispiel wird veranschaulicht, wie der Benutzer mithilfe eines ContextMenu Strukturknoten unterhalb der Stammebene bearbeiten kann. Sobald der Benutzer mit der rechten Maustaste auf eine bestimmte Position klickt, wird der TreeNode bestimmt, der sich an dieser Position befindet, und in einer Variablen mit der Bezeichnung mySelectedNode
gespeichert. Wenn ein Strukturknoten unterhalb der Stammebene ausgewählt wurde, wechselt er in einen bearbeitbaren Zustand. Dadurch kann der Benutzer die Knotenbezeichnung bearbeiten. Wenn der Benutzer die Bearbeitung der Strukturknotenbezeichnung abgeschlossen hat, wird der neue Bezeichnungstext ausgewertet und gespeichert. In diesem Beispiel sind mehrere Zeichen im Bezeichnungstext nicht zulässig. Wenn ein ungültiges Zeichen in der Zeichenfolge der Bezeichnung vorhanden ist oder die Zeichenfolge leer ist, wird der Benutzer von diesem Fehler in Kenntnis gesetzt, und der Text der Bezeichnung wird in seine ursprüngliche Version zurückgesetzt.
' 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
Me.treeView1.LabelEdit = False
End If
End Sub
/* 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();
}
this.treeView1.LabelEdit = false;
}
}
/* 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();
}
this->treeView1->LabelEdit = false;
}
}
/* 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.get_X(), e.get_Y());
} //treeView1_MouseDown
private void menuItem1_Click(Object sender, System.EventArgs e)
{
if (mySelectedNode != null && mySelectedNode.get_Parent() != null) {
treeView1.set_SelectedNode(mySelectedNode);
treeView1.set_LabelEdit(true);
if (!(mySelectedNode.get_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");
}
} //menuItem1_Click
private void treeView1_AfterLabelEdit(Object sender,
System.Windows.Forms.NodeLabelEditEventArgs e)
{
if (e.get_Label()!= null) {
if (e.get_Label().length() > 0) {
if (e.get_Label().IndexOfAny((new char[]{ '@', '.', ',', '!' }))
== -1) {
// Stop editing without canceling the label change.
e.get_Node().EndEdit(false);
}
else {
/* Cancel the label edit action, inform the user, and
place the node in edit mode again.
*/
e.set_CancelEdit(true);
MessageBox.Show("Invalid tree node label.\n"
+ "The invalid characters are: "
+ "'@','.', ',', '!'", "Node Label Edit");
e.get_Node().BeginEdit();
}
}
else {
/* Cancel the label edit action, inform the user, and
place the node in edit mode again.
*/
e.set_CancelEdit(true);
MessageBox.Show("Invalid tree node label.\n"
+ "The label cannot be blank", "Node Label Edit");
e.get_Node().BeginEdit();
}
this.treeView1.set_LabelEdit(false);
}
} //treeView1_AfterLabelEdit
Vererbungshierarchie
System.Object
System.EventArgs
System.Windows.Forms.NodeLabelEditEventArgs
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
NodeLabelEditEventArgs-Member
System.Windows.Forms-Namespace
NodeLabelEditEventHandler
BeforeLabelEdit
AfterLabelEdit