Condividi tramite


Impostazioni dell'applicazione 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à Impostazioni applicazione viene scritta in base al presupposto 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.

Impostazioni applicazione e controlli personalizzati

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 Progettazione di Windows Forms in Visual Studio, Windows Forms chiamerà LoadComponentSettings automaticamente quando il controllo viene inizializzato; è necessario chiamare SaveComponentSettings da soli 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, 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 crei una nuova istanza di questa classe, utilizza il costruttore per passare il tuo controllo personalizzato.

  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 impostazioni applicazione.

Chiavi delle Impostazioni e Impostazioni Condivise

Alcuni controlli si possono usare più volte all'interno dello stesso modulo. Nella maggior parte dei casi, questi controlli dovrebbero mantenere le proprie impostazioni. Con la proprietà SettingsKey su IPersistComponentSettings è possibile specificare una stringa univoca che serve a disambiguare più versioni di un controllo in un modulo.

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 . Impostazioni applicazione usa questa chiave univoca quando salva le impostazioni dell'utente in formato 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.

Vedere anche