TreeView.LabelEdit-Eigenschaft
Ruft einen Wert ab, der angibt, ob der Bezeichnungstext der Strukturknoten bearbeitet werden kann, oder legt diesen fest.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public Property LabelEdit As Boolean
'Usage
Dim instance As TreeView
Dim value As Boolean
value = instance.LabelEdit
instance.LabelEdit = value
public bool LabelEdit { get; set; }
public:
property bool LabelEdit {
bool get ();
void set (bool value);
}
/** @property */
public boolean get_LabelEdit ()
/** @property */
public void set_LabelEdit (boolean value)
public function get LabelEdit () : boolean
public function set LabelEdit (value : boolean)
Eigenschaftenwert
true, wenn der Bezeichnungstext der Strukturknoten bearbeitet werden kann, andernfalls false. Der Standardwert ist false.
Hinweise
Die BeginEdit-Methode hat nur dann eine Funktion, wenn die LabelEdit-Eigenschaft true ist. Wenn bei dem Versuch, die Bezeichnung zu bearbeiten, LabelEdit gleich false ist, wird eine Ausnahme ausgelöst, und der Strukturknoten wechselt nicht in einen bearbeitbaren Zustand.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie der Benutzer Strukturknoten unterhalb der Stammebene mithilfe eines ContextMenu bearbeiten kann. Wenn der Benutzer mit der rechten Maustaste auf eine bestimmte Position klickt, wird der an dieser Position befindliche TreeNode bestimmt und in einer Variablen mit dem Namen mySelectedNode
gespeichert. Wenn ein Strukturknoten unterhalb der Stammebene ausgewählt wurde, wechselt er in einen bearbeitbaren Zustand, sodass der Benutzer die Knotenbezeichnung bearbeiten kann. 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 gültig. 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
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
TreeView-Klasse
TreeView-Member
System.Windows.Forms-Namespace
BeginEdit
EndEdit