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 označ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
true
obsahuje-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 ovládací prvky a ForeColor 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ý ovládací prvek kontejneru, jako je Panel nebo GroupBox, s vlastními podřízenými ovládacími prvky by rekurze lépe demonstroval.
// 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 je Count hodnota kolekce větší než nula, HasChildren vrátí true
vlastnost . Přístup k HasChildren vlastnosti nevynutí vytvoření objektu Control.ControlCollection , pokud ovládací prvek nemá žádné podřízené položky, takže odkazování na tuto vlastnost může poskytnout výkonnostní výhodu při procházení stromu ovládacích prvků.