Control.HasChildren Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ů.