Control.HasChildren Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém um valor que indica se o controle contém um ou mais controles filho.
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
Valor da propriedade
true
se o controle contiver um ou mais controles filho; caso contrário, false
.
- Atributos
Exemplos
O exemplo de código a seguir define o BackColor e ForeColor dos controles como as cores padrão do sistema. O código se chama recursivamente se o controle tiver controles filho. Este exemplo de código exige que você tenha um Form controle filho com pelo menos um; no entanto, um controle de contêiner filho, como um Panel ou GroupBox, com seus próprios controles filho, demonstraria melhor a recursão.
// 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
Comentários
Se a Controls coleção tiver um Count valor maior que zero, a HasChildren propriedade retornará true
. Acessar a HasChildren propriedade não força a criação de um Control.ControlCollection se o controle não tiver filhos, portanto, referenciar essa propriedade pode fornecer um benefício de desempenho ao andar em uma árvore de controles.