Postupy: Ověření nastavení aplikace
Toto téma ukazuje, jak ověřit nastavení aplikace před jejich zachováním.
Vzhledem k tomu, že nastavení aplikace je silného typu, máte jistotu, že uživatelé nemůžou k danému nastavení přiřadit data nesprávného typu. Uživatel se ale může pokusit přiřadit hodnotu nastavení, které spadá mimo přijatelné hranice – například zadat datum narození, ke kterému dojde v budoucnu. ApplicationSettingsBase, nadřazená třída všech tříd nastavení aplikace, zveřejňuje čtyři události pro povolení takové kontroly hranic. Zpracovánítěchtoch událostí umístí veškerý ověřovací kód do jednoho umístění místo jeho bodování v celém projektu.
Událost, kterou používáte, závisí na tom, kdy potřebujete ověřit nastavení, jak je popsáno v následující tabulce.
Událost | Výskyt a použití |
---|---|
SettingsLoaded | Nastane po počátečním načtení skupiny vlastností nastavení. Tato událost slouží k ověření počátečních hodnot pro celou skupinu vlastností předtím, než se použijí v rámci aplikace. |
SettingChanging | Nastane před změnou hodnoty jedné vlastnosti nastavení. Tato událost slouží k ověření jedné vlastnosti před změnou. Může uživatelům poskytnout okamžitou zpětnou vazbu týkající se jejich akcí a voleb. |
PropertyChanged | Nastane po změně hodnoty jedné vlastnosti nastavení. Tato událost slouží k ověření jedné vlastnosti po změně. Tato událost se zřídka používá k ověření, pokud není vyžadován zdlouhavý asynchronní proces ověření. |
SettingsSaving | Nastane před uložením skupiny vlastností nastavení. Tato událost slouží k ověření hodnot pro celou skupinu vlastností předtím, než se zachovají na disk. |
Obvykle nebudete pro účely ověřování používat všechny tyto události ve stejné aplikaci. Často je například možné splnit všechny požadavky na ověření tím, že se zachází pouze s SettingChanging událostí.
Obslužná rutina události obecně provádí jednu z následujících akcí, když zjistí neplatnou hodnotu:
Automaticky poskytuje hodnotu, o které je známo, že je správná, například výchozí hodnota.
Znovu se dotazuje uživatele kódu serveru na informace.
U událostí vyvolaných před přidruženými akcemi, například SettingChanging a SettingsSaving, používá CancelEventArgs argument k zrušení operace.
Další informace o zpracování událostí naleznete v tématu Přehled obslužných rutin událostí.
Následující postupy ukazují, jak otestovat platné datum narození pomocí SettingChanging události nebo SettingsSaving události. Postupy byly napsány za předpokladu, že jste již vytvořili nastavení aplikace; v tomto příkladu provedeme kontrolu hranic u nastavení s názvem DateOfBirth
. Další informace o vytváření nastavení naleznete v tématu Postupy: Vytvoření Nastavení aplikace.
Získání objektu nastavení aplikace
Získejte odkaz na objekt nastavení aplikace (instance obálky) dokončením jedné z následujících položek s odrážkami:
Pokud jste nastavení vytvořili pomocí dialogového okna Visual Studio Application Nastavení v Editoru vlastností, můžete pomocí následujícího výrazu načíst výchozí objekt nastavení vygenerovaný pro váš jazyk.
Properties.Settings.Default
MySettings.Default
nebo
Pokud jste vývojář jazyka Visual Basic a vytvořili jste nastavení aplikace pomocí Návrháře projektu, můžete nastavení načíst pomocí my.Nastavení Objekt.
nebo
Pokud jste nastavení vytvořili odvozením přímo, ApplicationSettingsBase musíte třídu vytvořit ručně.
MyCustomSettings settings = new MyCustomSettings();
Dim Settings as New MyCustomSettings()
Následující postupy byly napsány za předpokladu, že objekt nastavení aplikace byl získán dokončením poslední položky s odrážkami v tomto postupu.
Ověření Nastavení aplikace při změně nastavení
Pokud jste vývojář jazyka C#, přidejte v události formuláře nebo ovládacího prvku
Load
obslužnou rutinu SettingChanging události.nebo
Pokud jste vývojář jazyka Visual Basic, měli byste proměnnou
Settings
deklarovat pomocí klíčovéhoWithEvents
slova.public void Form1_Load(Object sender, EventArgs e) { settings.SettingChanging += new SettingChangingEventHandler(MyCustomSettings_SettingChanging); }
Public Sub Form1_Load(sender as Object, e as EventArgs) AddHandler settings.SettingChanging, AddressOf MyCustomSettings_SettingChanging End Sub
Definujte obslužnou rutinu události a napište kód uvnitř, který provede kontrolu hranic pro datum narození.
private void MyCustomSettings_SettingChanging(Object sender, SettingChangingEventArgs e) { if (e.SettingName.Equals("DateOfBirth")) { var newDate = (DateTime)e.NewValue; if (newDate > DateTime.Now) { e.Cancel = true; // Inform the user. } } }
Private Sub MyCustomSettings_SettingChanging(sender as Object, e as SettingChangingEventArgs) Handles Settings.SettingChanging If (e.SettingName.Equals("DateOfBirth")) Then Dim NewDate as Date = CType(e.NewValue, Date) If (NewDate > Date.Now) Then e.Cancel = True ' Inform the user. End If End If End Sub
Ověření Nastavení aplikace při uložení
V události formuláře nebo ovládacího prvku
Load
přidejte obslužnou rutinu SettingsSaving události události.public void Form1_Load(Object sender, EventArgs e) { settings.SettingsSaving += new SettingsSavingEventHandler(MyCustomSettings_SettingsSaving); }
Public Sub Form1_Load(Sender as Object, e as EventArgs) AddHandler settings.SettingsSaving, AddressOf MyCustomSettings_SettingsSaving End Sub
Definujte obslužnou rutinu události a napište kód uvnitř, který provede kontrolu hranic pro datum narození.
private void MyCustomSettings_SettingsSaving(Object sender, SettingsSavingEventArgs e) { if (this["DateOfBirth"] > Date.Now) { e.Cancel = true; } }
Private Sub MyCustomSettings_SettingsSaving(Sender as Object, e as SettingsSavingEventArgs) If (Me["DateOfBirth"] > Date.Now) Then e.Cancel = True End If End Sub
Viz také
.NET Desktop feedback