Udostępnij za pośrednictwem


Ustawienia aplikacji dla kontrolek niestandardowych

Należy wykonać pewne zadania, aby zapewnić kontrolkom niestandardowym możliwość utrwalania ustawień aplikacji, gdy kontrolki są hostowane w aplikacjach innych firm.

Większość dokumentacji dotyczącej funkcji Ustawienia aplikacji jest napisana zgodnie z założeniem, że tworzysz aplikację autonomiczną. Jeśli jednak tworzysz kontrolkę, którą inni deweloperzy będą hostować w swoich aplikacjach, musisz wykonać kilka dodatkowych kroków w celu prawidłowego utrwalania jego ustawień.

Ustawienia aplikacji i kontrolki niestandardowe

Aby kontrolka prawidłowo utrwała swoje ustawienia, musi hermetyzować proces, tworząc własną klasę otoki ustawień dedykowanych aplikacji pochodzącą z ApplicationSettingsBase. Ponadto główna klasa sterująca musi zaimplementować IPersistComponentSettings. Interfejs zawiera kilka właściwości, a także dwie metody, LoadComponentSettings i SaveComponentSettings. Jeśli dodasz kontrolkę do formularza używając Windows Forms Designer w programie Visual Studio, Windows Forms automatycznie wywoła LoadComponentSettings po zainicjowaniu kontrolki; musisz sam wywołać SaveComponentSettings w metodzie Dispose kontrolki.

Ponadto należy zaimplementować następujące elementy, aby ustawienia aplikacji dla kontrolek niestandardowych działały prawidłowo w środowiskach czasu projektowania, takich jak Visual Studio:

  1. Niestandardowa klasa ustawień aplikacji z konstruktorem, który przyjmuje IComponent jako pojedynczy parametr. Ta klasa służy do zapisywania i ładowania wszystkich ustawień aplikacji. Podczas tworzenia nowego wystąpienia tej klasy przekaż kontrolkę niestandardową przy użyciu konstruktora.

  2. Utwórz tę klasę ustawień niestandardowych po utworzeniu kontrolki i umieszczeniu jej w formularzu, na przykład w procedurze obsługi zdarzeń Load formularza.

Aby uzyskać instrukcje dotyczące tworzenia klasy ustawień niestandardowych, zobacz Instrukcje: tworzenie ustawień aplikacji.

Klucze ustawień i ustawienia udostępnione

Niektóre kontrolki mogą być używane wiele razy w tym samym formularzu. W większości przypadków chcesz, aby te kontrolki utrwały własne ustawienia. Za pomocą właściwości SettingsKey w IPersistComponentSettingsmożna podać unikatowy ciąg, który służy do rozróżniania wielu wersji kontrolki w formularzu.

Najprostszym sposobem implementacji SettingsKey jest użycie właściwości Name kontrolki dla SettingsKey. Podczas ładowania lub zapisywania ustawień kontrolki należy przekazać wartość SettingsKey do właściwości SettingsKey klasy ApplicationSettingsBase. Ustawienia aplikacji używają tego unikatowego klucza, gdy utrwala ustawienia użytkownika w formacie XML. Poniższy przykład kodu pokazuje, jak może wyglądać sekcja <userSettings> dla wystąpienia niestandardowej kontrolki o nazwie CustomControl1, która zapisuje ustawienie dla swojej właściwości Text.

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

Wszystkie wystąpienia kontrolki które nie dostarczają wartości dla SettingsKey będą współdzielić te same ustawienia.

Zobacz też