Esta documentación está archivada y no tiene mantenimiento.

ContainerControlDesigner (Clase)

Actualización: noviembre 2007

Proporciona funciones del diseñador para controles que contienen controles secundarios o propiedades que se pueden modificar en tiempo de diseño.

Espacio de nombres:  System.Web.UI.Design
Ensamblado:  System.Design (en System.Design.dll)

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public class ContainerControlDesigner : ControlDesigner
/** @attribute SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode) */
public class ContainerControlDesigner extends ControlDesigner
public class ContainerControlDesigner extends ControlDesigner

La clase ContainerControlDesigner proporciona una clase base de diseñador para controles que pueden modificarse en la superficie de diseño. Se incluyen los controles con controles secundarios o propiedades internas modificables. La clase ContainerControlDesigner proporciona una sola región con marco para representar el control y controla automáticamente la representación del control en tiempo de diseño.

Aplique el atributo ParseChildrenAttribute en el control asociado para determinar el comportamiento en tiempo de diseño de la clase ContainerControlDesigner. Aplique los valores del atributo ParseChildrenAttribute en el control asociado como se detalla a continuación:

  • false para indicar que ContainerControlDesigner representa el contenido de la región del diseño modificable como controles secundarios.

  • true para indicar que ContainerControlDesigner representa el contenido de la región del diseño modificable como propiedades internas modificables del control.

Los desarrolladores de controles pueden derivar y ampliar un diseñador personalizado a partir de uno de los diseñadores base, en función del tipo de control que se esté diseñando, como se describe en la siguiente lista:

  • Los controles a los que se puede agregar controles secundarios en tiempo de diseño se pueden derivar de la clase ContainerControlDesigner. Por ejemplo, la clase PanelContainerDesigner se deriva de la clase ContainerControlDesigner y representa un control Panel en la superficie de diseño.

  • Los controles que tienen controles secundarios, y pueden tener también una región de diseñador modificable en la que se pueden agregar controles en tiempo de diseño, se pueden derivar de la clase CompositeControlDesigner.

  • Los controles que requieren un procesamiento personalizado en tiempo de diseño se pueden derivar de la clase base ControlDesigner.

b3xyd70s.alert_note(es-es,VS.90).gifNota:

La clase ContainerControlDesigner sustituye a la clase ReadWriteControlDesigner obsoleta.

Utilice el atributo DesignerAttribute para asociar una clase de diseñador personalizada junto con una implementación de control. Para obtener más información sobre cómo utilizar los diseñadores de controles con controles personalizados, vea Tutorial: Crear un diseñador de controles básico para un control de servidor Web.

En el ejemplo de código siguiente se muestra cómo derivar una clase de diseñador de la clase ContainerControlDesigner. El ejemplo define un solo control que se deriva de la clase CompositeControl y que define un diseñador asociado, que se deriva de la clase ContainerControlDesigner. La clase de diseñador derivado reemplaza las propiedades FrameCaption y FrameStyle para personalizar el marco que está alrededor de la región modificable del control en la superficie de diseño.

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;

namespace ControlDesignerSamples.CS
{

    // Define a simple composite control, derived from the 
    // System.Web.UI.WebControls.CompositeControl class.
    [
        Designer(typeof(SimpleContainerControlDesigner)) , 
        ParseChildren(false)
    ]
    public class SimpleContainerControl : CompositeControl
    {
    }


    // Define the designer for the simple composite control.
    // The designer derives from System.Web.UI.Design.ContainerControlDesigner.
    // The designer defines the style and caption for frame around the 
    // editable region in the design surface.
    public class SimpleContainerControlDesigner : ContainerControlDesigner
    {
        private Style _style = null;

        // Define the caption text for the frame in the design surface.
        public override string FrameCaption
        {
            get
            {
                return "= My simple container control =";
            }
        }

        // Define the style of the frame around the control in the design surface.
        public override Style FrameStyle
        {
            get
            {
                if (_style == null)
                {
                    _style = new Style();
                    _style.Font.Name = "Verdana";
                    _style.Font.Size = new FontUnit("XSmall");
                    _style.BackColor = Color.LavenderBlush;
                    _style.ForeColor = Color.DarkBlue;
                }

                return _style;
            }
        }
    }
}


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Mostrar: