Control.HasChildren Propiedad

Definición

Obtiene un valor que indica si el control contiene uno o más controles secundarios.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

Valor de propiedad

true si el control contiene uno o más controles secundarios; en caso contrario, false.true if the control contains one or more child controls; otherwise, false.

Atributos

Ejemplos

En el ejemplo de código siguiente se establece el BackColor y ForeColor de los controles en los colores predeterminados del sistema.The following code example sets the BackColor and ForeColor of the controls to the default system colors. El código se llama a sí mismo de forma recursiva si el control tiene controles secundarios.The code recursively calls itself if the control has any child controls. Este ejemplo de código requiere que tenga un Form con al menos un control secundario; sin embargo, un control contenedor secundario, como Panel o GroupBox, con sus propios controles secundarios demostrarían mejor la recursividad.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

Comentarios

Si la colección Controls tiene un Count mayor que cero, la propiedad HasChildren devolverá true.If the Controls collection has a Count greater than zero, the HasChildren property will return true. El acceso a la propiedad HasChildren no fuerza la creación de un Control.ControlCollection si el control no tiene elementos secundarios, por lo que hacer referencia a esta propiedad puede proporcionar una ventaja de rendimiento al recorrer un árbol de controles.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.

Se aplica a

Consulte también: