Control.HasChildren Właściwość

Definicja

Pobiera wartość wskazującą, czy kontrolka zawiera co najmniej jedną kontrolkę podrzędną.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; }
[<System.ComponentModel.Browsable(false)>]
member this.HasChildren : bool
Public ReadOnly Property HasChildren As Boolean

Wartość właściwości

Boolean

true Jeśli kontrolka zawiera co najmniej jedną kontrolkę podrzędną; w przeciwnym razie false .true if the control contains one or more child controls; otherwise, false.

Atrybuty

Przykłady

Poniższy przykład kodu ustawia BackColor ForeColor domyślne kolory systemowe i kontrolek.The following code example sets the BackColor and ForeColor of the controls to the default system colors. Kod cyklicznie wywołuje siebie, Jeśli kontrolka ma jakiekolwiek kontrolki podrzędne.The code recursively calls itself if the control has any child controls. Ten przykład kodu wymaga, aby miało Form co najmniej jedną kontrolkę podrzędną; jednak kontrolka podrzędnego kontenera, taka jak Panel lub GroupBox , z własnymi kontrolkami podrzędnymi lepiej ilustruje rekursję.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

Uwagi

Jeśli Controls Kolekcja ma Count więcej niż zero, właściwość zwróci wartość HasChildren true .If the Controls collection has a Count greater than zero, the HasChildren property will return true. Uzyskanie dostępu do HasChildren właściwości nie wymusza utworzenia elementu Control.ControlCollection , jeśli formant nie ma elementów podrzędnych, dlatego odwołanie do tej właściwości może zapewnić wydajność podczas przechodzenia drzewa kontrolek.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.

Dotyczy

Zobacz też