Freigeben über


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