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

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.

Ejemplos

El siguiente ejemplo de código establece la BackColor y ForeColor de los controles a los colores del sistema de forma predeterminada.The following code example sets the BackColor and ForeColor of the controls to the default system colors. El código de forma recursiva llama a sí mismo si el control tiene todos los controles secundarios.The code recursively calls itself if the control has any child controls. Este ejemplo de código requiere que haya un Form con control de al menos un elemento secundario; sin embargo, un contenedor secundario controlar, como un Panel o GroupBox, con su propio elemento secundario controles mejor demostraría 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 el Controls colección tiene un Count mayor que cero, el HasChildren propiedad devolverá true.If the Controls collection has a Count greater than zero, the HasChildren property will return true. Obtener acceso a la HasChildren propiedad no fuerza la creación de un Control.ControlCollection si el control no tiene elementos secundarios, por lo que hace referencia a esta propiedad puede proporcionar una mejora del 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: