Sdílet prostřednictvím


Control.HasChildren Vlastnost

Definice

Získá hodnotu určující, zda ovládací prvek obsahuje jeden nebo více podřízených ovládacích prvků.

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

Hodnota vlastnosti

trueobsahuje-li ovládací prvek jeden nebo více podřízených ovládacích prvků; v opačném případě . false

Atributy

Příklady

Následující příklad kódu nastaví BackColor a ForeColor ovládací prvky na výchozí systémové barvy. Kód rekurzivně volá sám sebe, pokud má ovládací prvek nějaké podřízené ovládací prvky. Tento příklad kódu vyžaduje, abyste měli Form alespoň jeden podřízený ovládací prvek, ale podřízený kontejnerový ovládací prvek, jako je Panel například nebo GroupBox, s vlastními podřízenými ovládacími prvky, by lépe ukázal rekurzi.

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

Poznámky

Controls Pokud má Count kolekce větší než nula, HasChildren vrátí se vlastnost true. HasChildren Přístup k vlastnosti nevynucuje vytvoření Control.ControlCollection ovládacího prvku, pokud ovládací prvek nemá žádné podřízené položky, takže odkazování na tuto vlastnost může poskytnout výhodu výkonu při procházení stromu ovládacích prvků.

Platí pro

Viz také