Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Control.HasChildren (Propiedad)

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

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public bool HasChildren { get; }
/** @property */
public boolean get_HasChildren ()

public function get HasChildren () : boolean

No aplicable.

Valor de propiedad

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

Si la colección Controls tiene una propiedad Count mayor que cero, la propiedad HasChildren devolverá true. El hecho de obtener acceso a la propiedad HasChildren no obliga a que se cree Control.ControlCollection si el control no tiene controles secundarios; por lo tanto, hacer referencia a esta propiedad puede suponer ventajas en cuanto al rendimiento cuando se trabaja en un árbol de controles.

En el ejemplo de código siguiente se establecen las propiedades BackColor y ForeColor de los controles en los colores predeterminados del sistema. El código se llama a sí mismo de forma recursiva si el control tiene controles secundarios. Este ejemplo de código requiere que haya un Form con un control secundario como mínimo; sin embargo, un control contenedor secundario, como Panel o GroupBox, con sus propios controles secundarios demostraría mejor la recursión.

// 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(this.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 void ResetAllControlsBackColor(Control control)
{
    control.set_BackColor(SystemColors.get_Control());
    control.set_ForeColor(SystemColors.get_ControlText());
    if (this.get_HasChildren()) {
        for (int iCtr=0; iCtr < control.get_Controls().get_Count(); iCtr++) {
            // Recursively call this method for each child control.
            Control childControl = control.get_Controls().get_Item(iCtr);
            ResetAllControlsBackColor(childControl);
        }
    }
} //ResetAllControlsBackColor

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.