Impostazioni delle applicazioni per i controlli personalizzati

Per consentire ai controlli personalizzati di rendere persistenti le impostazioni dell'applicazione quando sono inclusi in applicazioni di terze parti è necessario eseguire determinate attività.

La maggior parte della documentazione sulla funzione Impostazioni applicazione è scritta partendo dal presupposto che si crei un'applicazione autonoma. Se tuttavia si crea un controllo che verrà utilizzato da altri sviluppatori nelle loro applicazioni, è necessario eseguire ulteriori operazioni per garantire la persistenza delle impostazioni del controllo.

Impostazioni delle applicazioni e controlli personalizzati

Per garantire la persistenza delle impostazioni del controllo, è necessario che il processo venga incapsulato nel controllo mediante la creazione di una classe wrapper delle impostazioni dell'applicazione dedicata, derivata dalla classe ApplicationSettingsBase. La classe principale del controllo, inoltre, deve implementare l'interfaccia IPersistComponentSettings. Questa contiene varie proprietà nonché due metodi, LoadComponentSettings e SaveComponentSettings. Se si aggiunge il controllo a un form utilizzando Progettazione Windows Form in Visual Studio, il metodo LoadComponentSettings verrà chiamato automaticamente all'inizializzazione del controllo. Il metodo SaveComponentSettings deve essere chiamato manualmente nel metodo Dispose del controllo.

Inoltre, è necessario implementare quanto segue affinché le impostazioni dell'applicazione per i controlli personalizzati funzionino correttamente in ambienti in fase di progettazione come Visual Studio:

  1. Una classi personalizzata di impostazioni dell'applicazione con un costruttore che accetta IComponent come singolo parametro. Utilizzare questa classe per salvare e caricare tutte le impostazioni dell'applicazione. Quando si crea una nuova istanza di questa classe, passare il controllo personalizzato utilizzando il costruttore.

  2. Creare questa classe personalizzata di impostazioni dopo aver creato e inserito il controllo in un form, ad esempio nel gestore eventi Load del form.

Per le istruzioni sulla creazione di una classe di impostazioni personalizzate, vedere Procedura: creare le impostazioni dell'applicazione.

Chiavi delle impostazioni e impostazioni condivise

Alcuni controlli possono essere utilizzati più volte nello stesso form. In genere è opportuno che le impostazioni dei vari controlli siano rese persistenti. La proprietà SettingsKey dell'interfaccia IPersistComponentSettings consente di fornire una stringa univoca la cui funzione è di risolvere l'ambiguità tra le varie versioni di un controllo su un form.

Il modo più semplice per implementare la proprietà SettingsKey consiste nell'utilizzare la proprietà Name del controllo per la proprietà SettingsKey. Quando si caricano o salvano le impostazioni del controllo, si passa il valore della proprietà SettingsKey alla proprietà SettingsKey della classe ApplicationSettingsBase. Con la funzione Impostazioni applicazione viene utilizzata tale chiave univoca per rendere persistenti le impostazioni dell'utente in XML. Nell'esempio di codice riportato di seguito viene illustrato come con la sezione <userSettings> venga cercata un'istanza di un controllo personalizzato denominato CustomControl1 che salva un'impostazione per la proprietà Text .

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

Le istanze di un controllo che non forniscono un valore per la proprietà SettingsKey condivideranno le stesse impostazioni.

Vedere anche

Riferimenti

ApplicationSettingsBase

IPersistComponentSettings

Concetti

Architettura Impostazioni applicazione