Control.HasChildren プロパティ

定義

コントロールに 1 つ以上の子コントロールが格納されているかどうかを示す値を取得します。

public:
 property bool HasChildren { bool get(); };
[System.ComponentModel.Browsable(false)]
public bool HasChildren { get; }
[<System.ComponentModel.Browsable(false)>]
member this.HasChildren : bool
Public ReadOnly Property HasChildren As Boolean

プロパティ値

Boolean

コントロールに 1 つ以上の子コントロールが格納されている場合は true。それ以外の場合は false

属性

BackColorコントロールのとを既定のシステムカラーに設定するコード例を次に示し ForeColor ます。 コントロールに子コントロールがある場合、コードは再帰的にそれ自体を呼び出します。 このコード例では、少なくとも1つの子コントロールを持つを持っている必要があり Form ます。ただし、またはのような子コンテナーコントロールは、 Panel GroupBox 独自の子コントロールを持つことで、再帰をより適切に示すことができます。

   // Reset all the controls to the user's default Control color.
private:
   void ResetAllControlsBackColor( Control^ control )
   {
      control->BackColor = SystemColors::Control;
      control->ForeColor = SystemColors::ControlText;
      if ( control->HasChildren )
      {
         // Recursively call this method for each child control.
         IEnumerator^ myEnum = control->Controls->GetEnumerator();
         while ( myEnum->MoveNext() )
         {
            Control^ childControl = safe_cast<Control^>(myEnum->Current);
            ResetAllControlsBackColor( childControl );
         }
      }
   }
// Reset all the controls to the user's default Control color. 
private void ResetAllControlsBackColor(Control control)
{
   control.BackColor = SystemColors.Control;
   control.ForeColor = SystemColors.ControlText;
   if(control.HasChildren)
   {
      // Recursively call this method for each child control.
      foreach(Control childControl in control.Controls)
      {
         ResetAllControlsBackColor(childControl);
      }
   }
}
' Reset all the controls to the user's default Control color. 
Private Sub ResetAllControlsBackColor(control As Control)
   control.BackColor = SystemColors.Control
   control.ForeColor = SystemColors.ControlText
   If control.HasChildren Then
      ' Recursively call this method for each child control.
      Dim childControl As Control
      For Each childControl In  control.Controls
         ResetAllControlsBackColor(childControl)
      Next childControl
   End If
End Sub

注釈

コレクションの ControlsCount 0 より大きい場合、プロパティはを HasChildren 返し true ます。 コントロールに子がない場合、プロパティにアクセスして HasChildren も、は強制的に作成されません Control.ControlCollection 。そのため、このプロパティを参照すると、コントロールのツリーをウォークするときにパフォーマンス上の利点が得られます。

適用対象

こちらもご覧ください