Configuración de la aplicación para controles personalizados

Debe completar ciertas tareas para proporcionar a los controles personalizados la capacidad de conservar la configuración de la aplicación cuando los controles se hospedan en aplicaciones de terceros.

La mayoría de la documentación sobre la característica Configuración de la aplicación se escribe dando por sentado que está creando una aplicación independiente, pero si va a crear un control que hospedarán otros desarrolladores en sus aplicaciones, debe realizar algunos pasos adicionales para que el control conserve correctamente su configuración.

Configuración de la aplicación y controles personalizados

Para que el control conserve correctamente su configuración, debe encapsular el proceso creando su propia clase contenedora de configuración de aplicaciones dedicadas, derivada de ApplicationSettingsBase. Además, la clase de control principal debe implementar la interfaz IPersistComponentSettings. La interfaz contiene varias propiedades, así como dos métodos, LoadComponentSettings y SaveComponentSettings. Si agrega el control a un formulario mediante el Diseñador de Windows Forms en Visual Studio, Windows Forms llamará a LoadComponentSettings automáticamente cuando se inicialice el control; debe llamar a SaveComponentSettings usted mismo en el método Dispose del control.

Además, debe implementar lo siguiente para que la configuración de la aplicación para los controles personalizados funcionen correctamente en entornos en tiempo de diseño, como Visual Studio:

  1. Una clase de configuración de aplicación personalizada con un constructor que toma IComponent como un parámetro único. Use esta clase para guardar y cargar toda la configuración de la aplicación. Al crear una nueva instancia de esta clase, pase el control personalizado usando el constructor.

  2. Cree esta clase de configuración personalizada cuando haya creado el control y lo haya colocado en un formulario, como en el controlador de eventos del formulario Load.

Para más instrucciones sobre cómo crear una clase de parámetros de configuración personalizada, vea Procedimiento para crear la configuración de la aplicación.

Claves de configuración y configuración compartida

Algunos controles se pueden usar varias veces en el mismo formulario. La mayoría de las veces, querrá que estos controles conserven su propia configuración individual. Con la propiedad SettingsKey en IPersistComponentSettings, puede proporcionar una cadena única que actúa para desambiguar varias versiones de un control en un formulario.

La manera más sencilla de implementar SettingsKey es usar la propiedad Name del control para SettingsKey. Al cargar o guardar la configuración del control, pasa el valor de SettingsKey a la propiedad SettingsKey de la clase ApplicationSettingsBase. Configuración de la aplicación usa esta clave única cuando conserva la configuración del usuario en XML. En el ejemplo de código siguiente se muestra cómo una sección <userSettings> puede buscar una instancia de un control personalizado denominado CustomControl1 que guarda una configuración para la propiedad Text.

<userSettings>
    <CustomControl1>
        <setting name="Text" serializedAs="string">
            <value>Hello, World</value>
        </setting>
    </CustomControl1>
</userSettings>

Todas las instancias de un control que no proporcionen un valor para SettingsKey compartirán la misma configuración.

Consulte también