Share via


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

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

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

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

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

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

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

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

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

設定金鑰和共用設定

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

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

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

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

另請參閱