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

En el ejemplo de código siguiente BackColor se ForeColor establece el y 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 elemento con al menos un control secundario; sin embargo, un control contenedor secundario, Panel como GroupBoxo, con sus propios controles secundarios mostraría 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 Controls colección tiene un Count valor mayor que cero, HasChildren la propiedad devolverá true.If the Controls collection has a Count greater than zero, the HasChildren property will return true. El acceso a HasChildren la propiedad 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: