Control.HasChildren Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.