TreeView.BeforeCollapse イベントとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > TreeView.BeforeCollapse イベントの意味・解説 

TreeView.BeforeCollapse イベント

ツリー ノード折りたたまれる前に発生します

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

Public Event BeforeCollapse As
 TreeViewCancelEventHandler
Dim instance As TreeView
Dim handler As TreeViewCancelEventHandler

AddHandler instance.BeforeCollapse, handler
public event TreeViewCancelEventHandler BeforeCollapse
public:
event TreeViewCancelEventHandler^ BeforeCollapse {
    void add (TreeViewCancelEventHandler^ value);
    void remove (TreeViewCancelEventHandler^ value);
}
/** @event */
public void add_BeforeCollapse (TreeViewCancelEventHandler
 value)

/** @event */
public void remove_BeforeCollapse (TreeViewCancelEventHandler
 value)
JScript では、イベント使用できますが、新規に宣言することはできません。
解説解説
使用例使用例

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

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

詳細については、TreeView コンストラクタリファレンス トピック参照してください

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.ExpandAll()

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

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

    ' Remove the checkForCheckedChildren event handler from the BeforeExpand
 
    ' event so manual node expansion will work correctly.
    RemoveHandler treeView1.BeforeCollapse, AddressOf
 CheckForCheckedChildren
    ' Enable redrawing of treeView1.
    treeView1.EndUpdate()
End Sub 'showCheckedNodesButton_Click


' Prevent collapse of a node that has checked child nodes.
Private Sub CheckForCheckedChildren(ByVal
 sender As Object, ByVal
 e As TreeViewCancelEventArgs)
    If 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.ExpandAll();

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

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

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

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

// Prevent collapse of a node that has 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->ExpandAll();
      
      // Add the checkForCheckedChildren event handler to the BeforeExpand
 event.
      treeView1->BeforeCollapse += checkForCheckedChildren;
      
      // Expand all nodes of treeView1. Nodes without checked children
 are 
      // prevented from expanding by the checkForCheckedChildren event
 handler.
      treeView1->CollapseAll();
      
      // Remove the checkForCheckedChildren event handler from the BeforeExpand
 
      // event so manual node expansion will work correctly.
      treeView1->BeforeCollapse -= checkForCheckedChildren;
      
      // Enable redrawing of treeView1.
      treeView1->EndUpdate();
   }

   // Prevent collapse of a node that has 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.ExpandAll();
    // Add the checkForCheckedChildren event handler to the 
    // BeforeExpand event.
    treeView1.add_BeforeCollapse(checkForCheckedChildren);
    // Expand all nodes of treeView1. Nodes without checked children
 are 
    // prevented from expanding by the checkForCheckedChildren event
 handler.
    treeView1.CollapseAll();
    // Remove the checkForCheckedChildren event handler from the
    // BeforeExpand event so manual node expansion will work correctly.
    treeView1.remove_BeforeCollapse(checkForCheckedChildren);
    // Enable redrawing of treeView1.
    treeView1.EndUpdate();
} //showCheckedNodesButton_Click

// Prevent collapse of a node that has 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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
TreeView クラス
TreeView メンバ
System.Windows.Forms 名前空間
OnBeforeCollapse
TreeView.AfterCollapse イベント
OnAfterCollapse



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「TreeView.BeforeCollapse イベント」の関連用語

TreeView.BeforeCollapse イベントのお隣キーワード
検索ランキング

   

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



TreeView.BeforeCollapse イベントのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS