Control.HasChildren Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che indica se il controllo contiene uno o più controlli figlio.
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
Valore della proprietà
true
se il controllo contiene uno o più controlli figlio; in caso contrario, false
.
- Attributi
Esempio
L'esempio di codice seguente imposta e BackColorForeColor dei controlli sui colori di sistema predefiniti. Il codice chiama in modo ricorsivo se il controllo dispone di controlli figlio. In questo esempio di codice è necessario disporre di un Form oggetto con almeno un controllo figlio. Tuttavia, un controllo contenitore figlio, ad esempio o PanelGroupBox, con i propri controlli figlio, dimostrerebbe meglio la ricorsione.
// 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
Commenti
Se l'insieme Controls ha un Count valore maggiore di zero, la HasChildren proprietà restituirà true
. L'accesso alla HasChildren proprietà non forza la creazione di un Control.ControlCollection oggetto se il controllo non dispone di elementi figlio, pertanto fare riferimento a questa proprietà può offrire un vantaggio per le prestazioni durante l'esecuzione di un albero di controlli.