Control.HasChildren Control.HasChildren Control.HasChildren Control.HasChildren Property

Definizione

Ottiene un valore che indica se il controllo contiene uno o più controlli figlio.Gets a value indicating whether the control contains one or more child controls.

public:
 property bool HasChildren { bool get(); };
[System.ComponentModel.Browsable(false)]
public bool HasChildren { get; }
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.true if the control contains one or more child controls; otherwise, false.

Esempi

Nell'esempio di codice seguente gli BackColor elementi ForeColor e dei controlli vengono impostati sui colori di sistema predefiniti.The following code example sets the BackColor and ForeColor of the controls to the default system colors. Il codice chiama se stesso in modo ricorsivo se il controllo dispone di controlli figlio.The code recursively calls itself if the control has any child controls. Per questo esempio di codice è necessario disporre Form di un oggetto con almeno un controllo figlio. Tuttavia, un controllo contenitore figlio, Panel ad GroupBoxesempio un o, con i propri controlli figlio dimostrerà meglio la ricorsione.This code example requires that you have a Form with at least one child control; however, a child container control, like a Panel or GroupBox, with its own child control(s) would better demonstrate the recursion.

   // 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 la Controls raccolta ha un Count valore maggiore di zero, HasChildren la proprietà restituirà true.If the Controls collection has a Count greater than zero, the HasChildren property will return true. L'accesso alla HasChildren proprietà non impone la creazione di un oggetto Control.ControlCollection se il controllo non dispone di elementi figlio, quindi il riferimento a questa proprietà può offrire un vantaggio in merito alle prestazioni durante l'esplorazione di un albero di controlli.Accessing the HasChildren property does not force the creation of a Control.ControlCollection if the control has no children, so referencing this property can provide a performance benefit when walking a tree of controls.

Si applica a

Vedi anche