Control.HasChildren 속성

정의

컨트롤에 자식 컨트롤이 하나 이상 있는지를 나타내는 값을 가져옵니다.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 컬렉션에 0 보다 큰 Count 있는 경우 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.

적용 대상

추가 정보