TreeView.AfterCollapse Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vindt plaats nadat het structuurknooppunt is samengevouwen.
public:
event System::Windows::Forms::TreeViewEventHandler ^ AfterCollapse;
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
Gebeurtenistype
Voorbeelden
In het volgende codevoorbeeld worden alle onderliggende boomstructuurknooppunten van een TreeNode bijgewerkt wanneer de gebruiker de status Gecontroleerd wijzigt. Deze code vereist dat u een Form met een TreeView object in TreeNodede bijbehorende code hebtTreeNodeCollection. De TreeNodeCollection structuurknooppunten met onderliggende knooppunten moeten bestaan.
// 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
Opmerkingen
Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.