Control.HasChildren Proprietà

Definizione

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.

Si applica a

Vedi anche