Control.HasChildren Propriété

Définition

Obtient une valeur indiquant si le contrôle contient un ou plusieurs contrôles enfants.

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

Valeur de propriété

true si le contrôle contient un ou plusieurs contrôles enfants ; sinon, false.

Attributs

Exemples

L’exemple de code suivant définit le BackColor et ForeColor des contrôles sur les couleurs système par défaut. Le code s’appelle de manière récursive si le contrôle a des contrôles enfants. 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 serait mieux montrer la récursivité.

   // 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 Controls collection a une Count valeur supérieure à zéro, la HasChildren propriété retourne true. L’accès à la HasChildren propriété ne force pas la création d’un Control.ControlCollection si le contrôle n’a pas d’enfants. Le référencement de cette propriété peut donc fournir un avantage en matière de performances lors de la marche à pied d’une arborescence de contrôles.

S’applique à

Voir aussi