自訂控制項的應用程式設定

您必須完成某些工作,讓自訂控制項能夠在第三方應用程式中裝載控制項時保存應用程式設定。

大部分有關應用程式設定功能的文件都是根據您建立獨立應用程式的假設而撰寫的。 不過,如果您要建立其他開發人員在其應用程式中裝載的控制項,您需要採取一些額外的步驟,讓控制項能夠正確保存其設定。

應用程式設定和自訂控制項

若要讓控制項正確儲存其設定,它必須藉由建立自己的專用應用程式設定包裝函式類別 (衍生自 ApplicationSettingsBase) 來封裝該程序。 此外,主要控制項類別必須實作 IPersistComponentSettings。 介面包含數個屬性,以及兩個方法, LoadComponentSettingsSaveComponentSettings。 如果您在 Visual Studio 中使用 Windows Form 設計工具 將控制項新增至表單,Windows Forms 會在初始化控制項時自動呼叫 LoadComponentSettings;您必須在控制項的 Dispose 方法中自行呼叫 SaveComponentSettings

此外,您應該實作下列項目,讓自訂控制項的應用程式設定在 Visual Studio 等設計階段環境中正常運作:

  1. 具有建構函式的自訂應用程式設定類別,其採用 IComponent 做為單一參數。 使用此類別來儲存和載入您所有的應用程式設定。 當您建立這個類別的新實例時,請使用建構函式來傳遞自訂控制項。

  2. 在控制項建立並放置在表單上之後,建立此自訂設定類別,例如在表單的 Load 事件處理常式中。

如需建立自訂設定類別的指示,請參閱 如何:建立應用程式設定

設定金鑰和共享設定

某些控制項可以在相同表單內多次使用。 大部分時候,您會想要這些控制項保存自己的個別設定。 使用 IPersistComponentSettings 上的 SettingsKey 屬性,您可以提供唯一字串,以釐清表單上控制項的多個版本。

實作 SettingsKey 最簡單的方式,就是使用控制項的 Name 屬性作為 SettingsKey。 當您載入或儲存控制項的設定時,會將 SettingsKey 的值傳遞給 ApplicationSettingsBase 類別的 SettingsKey 屬性。 應用程式設定將使用者的設定保存到 XML 時,會使用此唯一索引鍵。 下列程式碼範例示範 <userSettings> 區段如何尋找名為 CustomControl1 的自訂控制項實例,以儲存其 Text 屬性的設定。

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

未提供值給 SettingsKey 的任何控制項實例都會共用相同的設定。

另請參閱