Control.HasChildren Control.HasChildren Control.HasChildren Control.HasChildren Property

정의

컨트롤에 자식 컨트롤이 하나 이상 있는지를 나타내는 값을 가져옵니다.Gets a value indicating whether the control contains one or more child controls.

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

속성 값

컨트롤에 자식 컨트롤이 하나 이상 있으면 true이고, 그렇지 않으면 false입니다.true if the control contains one or more child controls; otherwise, false.

예제

다음 코드 예제에서는 합니다 BackColorForeColor 컨트롤을 기본 시스템 색상입니다.The following code example sets the BackColor and ForeColor of the controls to the default system colors. 코드 재귀적으로 컨트롤에 자식 컨트롤이 경우 자신을 호출 합니다.The code recursively calls itself if the control has any child controls. 그러나이 코드 예제에서는 있다고를 Form 하나 이상의 자식 컨트롤을 사용 하 여 자식 컨테이너가 컨트롤 같은 Panel 또는 GroupBox, 개의 고유한 자식 컨트롤은 더 잘 보여 주기는 재귀 합니다.This code example requires that you have a Form with at least one child control; however, a child container control, like a Panel or GroupBox, with its own child control(s) would better demonstrate the recursion.

   // 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

설명

경우는 Controls 컬렉션에는 Count 0 보다 큰를 HasChildren 속성은 반환 true합니다.If the Controls collection has a Count greater than zero, the HasChildren property will return true. 에 액세스 하는 HasChildren 속성의 생성을 사용 하지 않는다는 Control.ControlCollection 컨트롤에 자식이 없는 경우이 속성을 참조 하므로 때 제공할 수 성능 이점을 컨트롤의 트리를 탐색 하기.Accessing the HasChildren property does not force the creation of a Control.ControlCollection if the control has no children, so referencing this property can provide a performance benefit when walking a tree of controls.

적용 대상

추가 정보