Control.HasChildren Propiedad

Definición

Obtiene un valor que indica si el control contiene uno o más controles secundarios.

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

Valor de propiedad

true si el control contiene uno o más controles secundarios; en caso contrario, false.

Atributos

Ejemplos

En el ejemplo de código siguiente se establecen los BackColor controles y ForeColor en los colores predeterminados del sistema. El código se llama recursivamente si el control tiene controles secundarios. Este ejemplo de código requiere que tenga un Form control con al menos un control secundario; sin embargo, un control de contenedor secundario, como o PanelGroupBox, con sus propios controles secundarios demostraría mejor la recursividad.

   // 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, la HasChildren propiedad devolverá true. El acceso a la HasChildren propiedad no fuerza la creación de un Control.ControlCollection objeto si el control no tiene elementos secundarios, por lo que hacer referencia a esta propiedad puede proporcionar una ventaja de rendimiento al caminar por un árbol de controles.

Se aplica a

Consulte también