Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

TreeView.BeforeCheck-Ereignis

 

Veröffentlicht: Oktober 2016

Tritt ein, bevor das Kontrollkästchen des Strukturknotens aktiviert wird.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public event TreeViewCancelEventHandler BeforeCheck

System_CAPS_noteHinweis

Festlegen der TreeNode.Checked -Eigenschaft innerhalb der BeforeCheck oder AfterCheck Ereignis bewirkt, dass das Ereignis mehrmals ausgelöst und kann zu unerwartetem Verhalten kommen. Legen Sie z. B. möglicherweise die Checked -Eigenschaft im Ereignishandler beim rekursiven Aktualisieren der untergeordneten Knoten sind, so, dass der Benutzer kein erweitern und jeweils einzeln zu aktivieren. Um zu verhindern, dass das Ereignis mehrmals ausgelöst wird, fügen Sie Logik hinzu, an den Ereignishandler, die den rekursiven Code nur ausführt, wenn die Action Eigenschaft der TreeViewEventArgs nicht auf festgelegt ist TreeViewAction.Unknown.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Im folgenden Codebeispiel wird aktualisiert alle untergeordneten Strukturknoten eines eine TreeNode Wenn der Benutzer dessen Aktivierungszustand ändert. Dieser Code erfordert, steht Ihnen eine Form mit einer TreeView bei dem TreeNode -Objekte in seine TreeNodeCollection. Die TreeNodeCollection sollte die Strukturknoten mit untergeordneten Knoten verfügen.

// Updates all child tree nodes recursively.
private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{
   foreach(TreeNode node in treeNode.Nodes)
   {
      node.Checked = nodeChecked;
      if(node.Nodes.Count > 0)
      {
         // If the current node has child nodes, call the CheckAllChildsNodes method recursively.
         this.CheckAllChildNodes(node, nodeChecked);
      }
   }
}

// NOTE   This code can be added to the BeforeCheck event handler instead of the AfterCheck event.
// After a tree node's Checked property is changed, all its child nodes are updated to the same value.
private void node_AfterCheck(object sender, TreeViewEventArgs e)
{
   // The code only executes if the user caused the checked state to change.
   if(e.Action != TreeViewAction.Unknown)
   {
      if(e.Node.Nodes.Count > 0)
      {
         /* Calls the CheckAllChildNodes method, passing in the current 
         Checked value of the TreeNode whose checked state changed. */
         this.CheckAllChildNodes(e.Node, e.Node.Checked);
      }
   }
}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: