Control.HasChildren Propriété

Définition

Obtient une valeur indiquant si le contrôle contient un ou plusieurs contrôles enfants.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

Valeur de propriété

true si le contrôle contient un ou plusieurs contrôles enfants ; sinon, false.true if the control contains one or more child controls; otherwise, false.

Attributs

Exemples

L’exemple de code suivant affecte les couleurs système par défaut aux BackColor et ForeColor des contrôles.The following code example sets the BackColor and ForeColor of the controls to the default system colors. Le code s’appelle de manière récursive si le contrôle a des contrôles enfants.The code recursively calls itself if the control has any child controls. Cet exemple de code nécessite que vous disposiez d’un Form avec au moins un contrôle enfant ; Toutefois, un contrôle conteneur enfant, comme un Panel ou GroupBox, avec ses propres contrôles enfants, illustre mieux la récursivité.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

Remarques

Si la collection Controls a une Count supérieure à zéro, la propriété HasChildren retourne true.If the Controls collection has a Count greater than zero, the HasChildren property will return true. L’accès à la propriété HasChildren ne force pas la création d’un Control.ControlCollection si le contrôle n’a pas d’enfants. par conséquent, la référence à cette propriété peut fournir un avantage en matière de performances lors du parcours d’une arborescence de contrôles.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.

S’applique à

Voir aussi