TreeView.AfterCollapse Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica dopo aver compresso il nodo dell'albero.
public:
event System::Windows::Forms::TreeViewEventHandler ^ AfterCollapse;
public event System.Windows.Forms.TreeViewEventHandler AfterCollapse;
member this.AfterCollapse : System.Windows.Forms.TreeViewEventHandler
Public Custom Event AfterCollapse As TreeViewEventHandler
Tipo evento
Esempio
Nell'esempio di codice seguente vengono aggiornati tutti i nodi dell'albero figlio di un TreeNode oggetto quando l'utente modifica lo stato selezionato. Per questo codice è necessario disporre di un oggetto con un Form TreeView oggetto che contiene TreeNode oggetti nel relativo TreeNodeCollectionoggetto . Deve avere nodi dell'albero TreeNodeCollection con nodi figlio.
// Updates all child tree nodes recursively.
void CheckAllChildNodes( TreeNode^ treeNode, bool nodeChecked )
{
IEnumerator^ myEnum = treeNode->Nodes->GetEnumerator();
while ( myEnum->MoveNext() )
{
TreeNode^ node = safe_cast<TreeNode^>(myEnum->Current);
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.
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 );
}
}
}
// 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);
}
}
}
' Updates all child tree nodes recursively.
Private Sub CheckAllChildNodes(treeNode As TreeNode, nodeChecked As Boolean)
Dim node As TreeNode
For Each node In treeNode.Nodes
node.Checked = nodeChecked
If node.Nodes.Count > 0 Then
' If the current node has child nodes, call the CheckAllChildsNodes method recursively.
Me.CheckAllChildNodes(node, nodeChecked)
End If
Next node
End Sub
' 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 Sub node_AfterCheck(sender As Object, e As TreeViewEventArgs) Handles treeView1.AfterCheck
' The code only executes if the user caused the checked state to change.
If e.Action <> TreeViewAction.Unknown Then
If e.Node.Nodes.Count > 0 Then
' Calls the CheckAllChildNodes method, passing in the current
' Checked value of the TreeNode whose checked state changed.
Me.CheckAllChildNodes(e.Node, e.Node.Checked)
End If
End If
End Sub
Commenti
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.