Impostazioni delle applicazioni per i controlli personalizzati

È necessario completare determinate attività per offrire ai controlli personalizzati la possibilità di rendere persistenti le impostazioni dell'applicazione quando i controlli sono ospitati in applicazioni di terze parti.

La maggior parte della documentazione relativa alla funzionalità application Impostazioni viene scritta presupponendo che si stia creando un'applicazione autonoma. Tuttavia, se si sta creando un controllo che altri sviluppatori ospiteranno nelle applicazioni, è necessario eseguire alcuni passaggi aggiuntivi per rendere persistenti correttamente le impostazioni del controllo.

Controlli personalizzati e Impostazioni dell'applicazione

Per rendere persistente correttamente le impostazioni del controllo, è necessario incapsulare il processo creando una classe wrapper di impostazioni di applicazioni dedicate, derivata da ApplicationSettingsBase. Inoltre, la classe di controllo principale deve implementare .IPersistComponentSettings L'interfaccia contiene diverse proprietà, nonché due metodi, LoadComponentSettings e SaveComponentSettings. Se si aggiunge il controllo a un modulo usando la finestra di progettazione Windows Form in Visual Studio, Windows Form chiamerà LoadComponentSettings automaticamente quando il controllo viene inizializzato. È necessario chiamare SaveComponentSettings se stessi nel Dispose metodo del controllo.

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

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

  2. Creare questa classe di impostazioni personalizzate dopo che il controllo è stato creato e inserito in un modulo, ad esempio nel gestore eventi del Load modulo.

Per istruzioni sulla creazione di una classe di impostazioni personalizzate, vedere Procedura: Creare un'applicazione Impostazioni.

chiavi di Impostazioni e Impostazioni condivise

Alcuni controlli possono essere usati più volte all'interno della stessa maschera. Nella maggior parte dei casi, questi controlli dovranno rendere persistenti le proprie impostazioni. Con la SettingsKey proprietà in IPersistComponentSettingsè possibile specificare una stringa univoca che agisce per disambiguare più versioni di un controllo in una maschera.

Il modo più semplice per implementare SettingsKey consiste nell'usare la Name proprietà del controllo per .SettingsKey Quando si caricano o si salvano le impostazioni del controllo, si passa il valore di SettingsKey su alla SettingsKey proprietà della ApplicationSettingsBase classe . L'applicazione Impostazioni usa questa chiave univoca quando rende persistenti le impostazioni dell'utente in XML. Nell'esempio di codice seguente viene illustrato come una <userSettings> sezione può cercare un'istanza di un controllo personalizzato denominato CustomControl1 che salva un'impostazione per la relativa Text proprietà.

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

Tutte le istanze di un controllo che non forniscono un valore per SettingsKey condivideranno le stesse impostazioni.

Vedi anche