TreeViewCancelEventArgsとは? わかりやすく解説

TreeViewCancelEventArgs クラス

TreeView コントロールの BeforeCheck、BeforeCollapse、BeforeExpand、および BeforeSelect の各イベントのデータを提供します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Class TreeViewCancelEventArgs
    Inherits CancelEventArgs
Dim instance As TreeViewCancelEventArgs
public class TreeViewCancelEventArgs : CancelEventArgs
public ref class TreeViewCancelEventArgs :
 public CancelEventArgs
public class TreeViewCancelEventArgs extends
 CancelEventArgs
public class TreeViewCancelEventArgs extends
 CancelEventArgs
解説解説
使用例使用例

TreeView の折りたたみの状態を変更して、チェックされているノードを表示する方法を次の例に示します。まず、すべてのノードが折りたたまれ、TreeView.BeforeExpand イベントにハンドラが追加されます。次に、すべてのノードが展開されます。TreeView.BeforeExpand イベント ハンドラは、指定したノードに、チェックされている子ノードがあるかどうかを確認します。チェックされている子ノードがない場合、そのノードの展開はキャンセルされます。次に、ノードの横にあるプラス記号がクリックされたときに通常のノードを展開できるようにするため、TreeView.BeforeExpand イベント ハンドラが削除されます。

TreeView.BeforeCollapse イベントを処理してこの動作を実装することもできます。詳細については、該当するトピックの例を参照してください。

詳細については、TreeView.CheckBoxes のリファレンス トピックを参照してください。

Private Sub showCheckedNodesButton_Click(ByVal
 sender As Object, ByVal
 e As EventArgs)
    ' Disable redrawing of treeView1 to prevent flickering 
    ' while changes are made.
    treeView1.BeginUpdate()

    ' Collapse all nodes of treeView1.
    treeView1.CollapseAll()

    ' Add the CheckForCheckedChildren event handler to the BeforeExpand
 event.
    AddHandler treeView1.BeforeExpand, AddressOf
 CheckForCheckedChildren

    ' Expand all nodes of treeView1. Nodes without checked children
 are 
    ' prevented from expanding by the checkForCheckedChildren event
 handler.
    treeView1.ExpandAll()

    ' Remove the checkForCheckedChildren event handler from the BeforeExpand
 
    ' event so manual node expansion will work correctly.
    RemoveHandler treeView1.BeforeExpand, AddressOf
 CheckForCheckedChildren

    ' Enable redrawing of treeView1.
    treeView1.EndUpdate()
End Sub 'showCheckedNodesButton_Click

' Prevent expansion of a node that does not have any checked child nodes.
Private Sub CheckForCheckedChildren(ByVal
 sender As Object, ByVal
 e As TreeViewCancelEventArgs)
    If Not HasCheckedChildNodes(e.Node) Then
        e.Cancel = True
    End If
End Sub 'CheckForCheckedChildren

' Returns a value indicating whether the specified 
' TreeNode has checked child nodes.
Private Function HasCheckedChildNodes(ByVal
 node As TreeNode) As Boolean
    If node.Nodes.Count = 0 Then
        Return False
    End If
    Dim childNode As TreeNode
    For Each childNode In
 node.Nodes
        If childNode.Checked Then
            Return True
        End If
        ' Recursively check the children of the current child node.
        If HasCheckedChildNodes(childNode) Then
            Return True
        End If
    Next childNode
    Return False
End Function 'HasCheckedChildNodes
private void showCheckedNodesButton_Click(object
 sender, EventArgs e)
{
    // Disable redrawing of treeView1 to prevent flickering 
    // while changes are made.
    treeView1.BeginUpdate();

    // Collapse all nodes of treeView1.
    treeView1.CollapseAll();

    // Add the checkForCheckedChildren event handler to the BeforeExpand
 event.
    treeView1.BeforeExpand += checkForCheckedChildren;

    // Expand all nodes of treeView1. Nodes without checked children
 are 
    // prevented from expanding by the checkForCheckedChildren event
 handler.
    treeView1.ExpandAll();

    // Remove the checkForCheckedChildren event handler from the BeforeExpand
 
    // event so manual node expansion will work correctly.
    treeView1.BeforeExpand -= checkForCheckedChildren;

    // Enable redrawing of treeView1.
    treeView1.EndUpdate();
}

// Prevent expansion of a node that does not have any checked child
 nodes.
private void CheckForCheckedChildrenHandler(object
 sender, 
    TreeViewCancelEventArgs e)
{
    if (!HasCheckedChildNodes(e.Node)) e.Cancel = true;
}

// Returns a value indicating whether the specified 
// TreeNode has checked child nodes.
private bool HasCheckedChildNodes(TreeNode
 node)
{
    if (node.Nodes.Count == 0) return false;
    foreach (TreeNode childNode in node.Nodes)
    {
        if (childNode.Checked) return true;
        // Recursively check the children of the current child node.
        if (HasCheckedChildNodes(childNode)) return
 true;
    }
    return false;
}
private:
   void showCheckedNodesButton_Click( Object^ /*sender*/, EventArgs^
 /*e*/ )
   {
      // Disable redrawing of treeView1 to prevent flickering 
      // while changes are made.
      treeView1->BeginUpdate();
      
      // Collapse all nodes of treeView1.
      treeView1->CollapseAll();
      
      // Add the checkForCheckedChildren event handler to the BeforeExpand
 event.
      treeView1->BeforeExpand += checkForCheckedChildren;
      
      // Expand all nodes of treeView1. Nodes without checked children
 are 
      // prevented from expanding by the checkForCheckedChildren event
 handler.
      treeView1->ExpandAll();
      
      // Remove the checkForCheckedChildren event handler from the BeforeExpand
 
      // event so manual node expansion will work correctly.
      treeView1->BeforeExpand -= checkForCheckedChildren;
      
      // Enable redrawing of treeView1.
      treeView1->EndUpdate();
   }

   // Prevent expansion of a node that does not have any checked child
 nodes.
   void CheckForCheckedChildrenHandler( Object^ /*sender*/, TreeViewCancelEventArgs^
 e )
   {
      if (  !HasCheckedChildNodes( e->Node ) )
            e->Cancel = true;
   }


   // Returns a value indicating whether the specified 
   // TreeNode has checked child nodes.
   bool HasCheckedChildNodes( TreeNode^ node )
   {
      if ( node->Nodes->Count == 0 )
            return false;

      System::Collections::IEnumerator^ myEnum = node->Nodes->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         TreeNode^ childNode = safe_cast<TreeNode^>(myEnum->Current);
         if ( childNode->Checked )
                  return true;

         // Recursively check the children of the current child node.
         if ( HasCheckedChildNodes( childNode ) )
                  return true;
      }

      return false;
   }
private void showCheckedNodesButton_Click(Object
 sender, EventArgs e)
{
    // Disable redrawing of treeView1 to prevent flickering 
    // while changes are made.
    treeView1.BeginUpdate();
    // Collapse all nodes of treeView1.
    treeView1.CollapseAll();
    // Add the checkForCheckedChildren event handler to the
    // BeforeExpand event.
    treeView1.add_BeforeExpand(checkForCheckedChildren);
    // Expand all nodes of treeView1. Nodes without checked children
 are 
    // prevented from expanding by the checkForCheckedChildren event
 handler.
    treeView1.ExpandAll();
    // Remove the checkForCheckedChildren event handler from
    // the BeforeExpand 
    // event so manual node expansion will work correctly.
    treeView1.remove_BeforeExpand(checkForCheckedChildren);
    // Enable redrawing of treeView1.
    treeView1.EndUpdate();
} //showCheckedNodesButton_Click

// Prevent expansion of a node that does not have any checked child
 nodes.
private void CheckForCheckedChildrenHandler(Object
 sender,
    TreeViewCancelEventArgs e)
{
    if (!(HasCheckedChildNodes(e.get_Node()))) {
        e.set_Cancel(true);
    }
} //CheckForCheckedChildrenHandler

// Returns a value indicating whether the specified 
// TreeNode has checked child nodes.
private boolean HasCheckedChildNodes(TreeNode node)
{
    if (node.get_Nodes().get_Count() == 0) {
        return false;
    }
    for (int iCtr = 0; iCtr < node.get_Nodes().get_Count();
 iCtr++) {
        TreeNode childNode = node.get_Nodes().get_Item(iCtr);
        if (childNode.get_Checked()) {
            return true;
        }
        // Recursively check the children of the current child node.
        if (HasCheckedChildNodes(childNode)) {
            return true;
        }
    }
    return false;
} //HasCheckedChildNodes
継承階層継承階層
System.Object
   System.EventArgs
     System.ComponentModel.CancelEventArgs
      System.Windows.Forms.TreeViewCancelEventArgs
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
TreeViewCancelEventArgs メンバ
System.Windows.Forms 名前空間
TreeViewEventArgs

TreeViewCancelEventArgs コンストラクタ

ツリー ノード、イベントをキャンセルするかどうかを示す値、およびイベントを発生させたツリー ビュー アクションの種類を指定して、TreeViewCancelEventArgs クラスの新しいインスタンスを初期化します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Sub New ( _
    node As TreeNode, _
    cancel As Boolean, _
    action As TreeViewAction _
)
Dim node As TreeNode
Dim cancel As Boolean
Dim action As TreeViewAction

Dim instance As New TreeViewCancelEventArgs(node,
 cancel, action)
public TreeViewCancelEventArgs (
    TreeNode node,
    bool cancel,
    TreeViewAction action
)
public:
TreeViewCancelEventArgs (
    TreeNode^ node, 
    bool cancel, 
    TreeViewAction action
)
public TreeViewCancelEventArgs (
    TreeNode node, 
    boolean cancel, 
    TreeViewAction action
)
public function TreeViewCancelEventArgs (
    node : TreeNode, 
    cancel : boolean, 
    action : TreeViewAction
)

パラメータ

node

イベントが応答する対象の TreeNode。

cancel

イベントをキャンセルする場合は true。それ以外の場合は false。

action

イベントを発生させたアクションの種類を示す、TreeViewAction 値の 1 つ。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
TreeViewCancelEventArgs クラス
TreeViewCancelEventArgs メンバ
System.Windows.Forms 名前空間

TreeViewCancelEventArgs プロパティ


TreeViewCancelEventArgs メソッド


TreeViewCancelEventArgs メンバ

TreeView コントロールの BeforeCheck、BeforeCollapse、BeforeExpand、および BeforeSelect の各イベントのデータを提供します。

TreeViewCancelEventArgs データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

TreeViewCancelEventArgs クラス
System.Windows.Forms 名前空間
TreeViewEventArgs



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「TreeViewCancelEventArgs」の関連用語

TreeViewCancelEventArgsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



TreeViewCancelEventArgsのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS