Control.HasChildren Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy kontrolka zawiera co najmniej jedną kontrolkę podrzędną.
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
Wartość właściwości
true
jeśli kontrolka zawiera co najmniej jedną kontrolkę podrzędną; w przeciwnym razie , false
.
- Atrybuty
Przykłady
Poniższy przykład kodu ustawia kontrolki BackColor i ForeColor na domyślne kolory systemowe. Kod cyklicznie wywołuje się, jeśli kontrolka ma jakiekolwiek kontrolki podrzędne. Ten przykład kodu wymaga posiadania Form co najmniej jednej kontrolki podrzędnej, jednak kontrolka kontenera podrzędnego, taka jak lub PanelGroupBox, z własnymi kontrolkami podrzędnymi, lepiej demonstruje rekursję.
// 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
Uwagi
Controls Jeśli kolekcja ma Count wartość większą niż zero, HasChildren właściwość zwróci wartość true
. Uzyskiwanie HasChildren dostępu do właściwości nie wymusza tworzenia Control.ControlCollection kontrolki, jeśli kontrolka nie ma elementów podrzędnych, dlatego odwołanie się do tej właściwości może zapewnić korzyść z wydajności podczas chodzenia drzewa kontrolek.