Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör bemutatja, hogyan érvényesítheti az alkalmazásbeállításokat azok megőrzése előtt.
Mivel az alkalmazásbeállítások erősen típusosak, biztos lehet abban, hogy a felhasználók nem rendelhetnek helytelen típusú adatokat egy adott beállításhoz. A felhasználók azonban továbbra is megpróbálhatnak olyan értékeket hozzárendelni egy olyan beállításhoz, amely nem felel meg az elfogadható korlátoknak– például meg kell adni egy jövőbeli születési dátumot. ApplicationSettingsBase, az összes alkalmazásbeállítási osztály szülőosztálya négy eseményt tesz elérhetővé az ilyen korlátok ellenőrzésének engedélyezéséhez. Ezeknek az eseményeknek a kezelése az összes érvényesítési kódot egyetlen helyen helyezi el ahelyett, hogy a projektben szétszórja őket.
A használt esemény attól függ, hogy mikor kell ellenőriznie a beállításokat az alábbi táblázatban leírtak szerint.
| Esemény | Előfordulás és használat |
|---|---|
| SettingsLoaded | A beállítási tulajdonságcsoport kezdeti betöltése után következik be. Az esemény használatával ellenőrizheti a teljes tulajdonságcsoport kezdeti értékeit, mielőtt felhasználja őket az alkalmazásban. |
| SettingChanging | Egy beállítástulajdonság értékének módosítása előtt következik be. Ezzel az eseménysel egyetlen tulajdonságot érvényesíthet a módosítás előtt. Azonnali visszajelzést adhat a felhasználóknak a tevékenységeikről és a választási lehetőségeikről. |
| PropertyChanged | Egy beállítástulajdonság értékének módosítása után következik be. Ezzel az eseménysel egyetlen tulajdonságot érvényesíthet a módosítás után. Ezt az eseményt ritkán használják az ellenőrzéshez, kivéve, ha hosszadalmas, aszinkron érvényesítési folyamatra van szükség. |
| SettingsSaving | A beállítástulajdonság-csoport tárolása előtt történik. Ez az esemény a teljes tulajdonságcsoport értékeinek ellenőrzésére használható, mielőtt azok megmaradnának a lemezen. |
Általában nem fogja használni az összes ilyen eseményt ugyanazon az alkalmazáson belül érvényesítési célokra. Előfordulhat például, hogy az összes érvényesítési követelményt csak az SettingChanging esemény kezelésével lehet teljesíteni.
Az eseménykezelő általában az alábbi műveletek egyikét hajtja végre, ha érvénytelen értéket észlel:
Automatikusan megadja a helyesnek ismert értéket, például az alapértelmezett értéket.
A kiszolgálókód felhasználójának ismételt lekérdezése információkért.
Az olyan események esetében, amelyek a kapcsolódó műveletek előtt történtek, például SettingChanging és SettingsSaving, az CancelEventArgs argumentum használatával megszakítják a műveletet.
Az eseménykezeléssel kapcsolatos további információkért tekintse meg az Eseménykezelők áttekintését.
Az alábbi eljárások bemutatják, hogyan lehet érvényes születési dátumot ellenőrizni a SettingChanging vagy a SettingsSaving esemény használatával. Az eljárásokat azzal a feltételezéssel írták, hogy már létrehozta az alkalmazásbeállításokat; ebben a példában egy DateOfBirth nevű beállításon végzünk határ-ellenőrzést. További információ a beállítások létrehozásáról : Útmutató: Alkalmazásbeállítások létrehozása.
Az alkalmazásbeállítások objektumának megkapása
Az alábbi listajeles elemek egyikének kitöltésével szerezze be az alkalmazásbeállítások objektumára (a burkolópéldányra) mutató hivatkozást:
Ha a beállításokat a Visual Studio Alkalmazásbeállítások párbeszédpanelen hozta létre a Tulajdonságszerkesztőben, az alábbi kifejezéssel lekérheti a nyelvhez létrehozott alapértelmezett beállításobjektumot.
Properties.Settings.DefaultMySettings.Default-vagy-
Ha Ön Visual Basic-fejlesztő, és az alkalmazásbeállításokat a Project Designerrel hozta létre, a Saját.Beállítások objektum használatával lekérheti a beállításokat.
-vagy-
Ha a beállításokat úgy hozta létre, hogy közvetlenül az ApplicationSettingsBase-ból származtatta, manuálisan kell példányosítania az osztályt.
MyCustomSettings settings = new MyCustomSettings();Dim Settings as New MyCustomSettings()
A következő eljárásokat azzal a feltételezéssel írták, hogy az alkalmazásbeállítások objektuma az eljárás utolsó listajeles elemének kitöltésével lett beszerezve.
Alkalmazásbeállítások érvényesítése egy beállítás módosításakor
Ha Ön C#-fejlesztő, adjon hozzá egy eseménykezelőt az
Loadeseményéhez az űrlap vagy vezérlő SettingChanging eseményében.-vagy-
Ha Ön Visual Basic-fejlesztő, deklarálnia kell a változót
SettingsaWithEventskulcsszó használatával.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 SubDefiniálja az eseménykezelőt, és írja be a benne lévő kódot a születési dátumon végzett korlátok ellenőrzéséhez.
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
Alkalmazásbeállítások érvényesítése mentéskor
Az űrlap vagy vezérlő eseményében
Loadadjon hozzá egy eseménykezelőt az SettingsSaving eseményhez.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 SubDefiniálja az eseménykezelőt, és írja be a benne lévő kódot a születési dátumon végzett korlátok ellenőrzéséhez.
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
Lásd még
.NET Desktop feedback