Configuración de la aplicación para controles personalizados

Debe finalizar determinadas tareas para dar a los controles personalizados la capacidad de conservar la configuración cuando 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 suponiendo que se está creando una aplicación independiente. Sin embargo, si está creando un control que otros desarrolladores van a hospedar en sus aplicaciones, entonces necesita realizar algunos pasos adicionales para que el control conserve la configuración correctamente.

Configuración de la aplicación y controles personalizados

Para que el control conserve la configuración correctamente, debe encapsular el proceso creando su propia clase contenedora específica de los valores de configuración de la aplicación, 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 se agrega el control a un formulario utilizando el Diseñador de Windows Forms de Visual Studio, formularios Windows Forms llamará automáticamente a LoadComponentSettings cuando se inicializa el control, pero hay que llamar a SaveComponentSettings 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 funcione correctamente en tiempo de diseño en entornos como Visual Studio:

  1. Una clase de configuración de aplicación personalizada con un constructor que recibe un IComponent como parámetro único. En esta clase, guarde y cargue toda la configuración de la aplicación. Cuando cree una instancia nueva de esta clase, pase su control personalizado usando el constructor.

  2. Cree esta clase de configuración personalizada después de crear y colocar el control en un formulario, por ejemplo, en el controlador de eventos Load del formulario.

Para obtener instrucciones acerca de cómo crear una clase de configuración personalizada, vea Cómo: Crear la configuración de la aplicación.

Claves de configuración y valores de configuración compartidos

Algunos controles se pueden utilizar varias veces dentro del mismo formulario. En la mayoría de las ocasiones, deseará que estos controles conserven su propia configuración individual. Con la propiedad SettingsKey de IPersistComponentSettings puede proporcionar una cadena única que se utiliza para eliminar la ambigüedad entre varias versiones de un control en un formulario.

La manera más simple de implementar SettingsKey es utilizar la propiedad Name del control para SettingsKey. Cuando carga o guarda la configuración de un control, pasa el valor de SettingsKey a la propiedad SettingsKey de la clase ApplicationSettingsBase. La Configuración de la aplicación utiliza esta clave única cuando conserva los valores de configuración del usuario en XML. El ejemplo de código siguiente muestra cómo una sección <userSettings> puede buscar una instancia de un control personalizado denominado CustomControl1 que guarda una configuración para su propiedad Text .

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

Cualquier instancia de un control que no proporciona un valor para SettingsKey compartirá la misma configuración.

Vea también

Referencia

ApplicationSettingsBase

IPersistComponentSettings

Conceptos

Arquitectura de configuración de la aplicación