Partager via


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 les BackColorForeColor 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’au Form moins un contrôle enfant . Toutefois, un contrôle conteneur enfant, tel qu’un Panel ou GroupBox, avec ses propres contrôles enfants, illustre mieux 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 contrôle si le contrôle n’a pas d’enfants. Par conséquent, le référencement de cette propriété peut offrir un avantage de performances lors de la marche d’une arborescence de contrôles.

S’applique à

Voir aussi