Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

TreeNode.IsEditing-Eigenschaft

Aktualisiert: November 2007

Ruft einen Wert ab, der angibt, ob sich der Strukturknoten in einem bearbeitbaren Zustand befindet.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
[BrowsableAttribute(false)]
public bool IsEditing { get; }
/** @property */
/** @attribute BrowsableAttribute(false) */
public boolean get_IsEditing()

public function get IsEditing () : boolean

Eigenschaftenwert

Typ: System.Boolean
true, wenn sich der Strukturknoten in einem bearbeitbaren Zustand befindet, andernfalls false.

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 der Bezeichnung 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 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 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.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


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.