TreeView.AfterCollapse イベント
ツリー ノードが折りたたまれた後に発生します。
Public Event AfterCollapse As TreeViewEventHandler
[C#]
public event TreeViewEventHandler AfterCollapse;
[C++]
public: __event TreeViewEventHandler* AfterCollapse;
[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。
イベント データ
イベント ハンドラが、このイベントに関連するデータを含む、TreeViewEventArgs 型の引数を受け取りました。次の TreeViewEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 説明 |
---|---|
Action | イベントを発生させたアクションの種類を取得します。 |
Node | チェックされた、展開された、折りたたまれた、または選択されたツリー ノードを取得します。 |
解説
イベント処理の詳細については、「 イベントの利用 」を参照してください。
使用例
[Visual Basic, C#, C++] ユーザーがチェック状態を変更したときに TreeNode のすべての子ツリー ノードを更新する例を次に示します。このコードは、 TreeNodeCollection に TreeNode オブジェクトがある TreeView が配置された Form があることを前提にしています。 TreeNodeCollection は、子ノードを持つツリー ノードを持っている必要があります。
' 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
[C#]
// 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);
}
}
}
[C++]
// Updates all child tree nodes recursively.
private:
void CheckAllChildNodes(TreeNode* treeNode, bool nodeChecked) {
IEnumerator* myEnum = treeNode->Nodes->GetEnumerator();
while (myEnum->MoveNext()) {
TreeNode* node = __try_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);
}
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
TreeView クラス | TreeView メンバ | System.Windows.Forms 名前空間 | OnAfterCollapse | BeforeCollapse | OnBeforeCollapse