Megosztás a következőn keresztül:


Útmutató: Alkalmazásbeállítások ellenőrzése

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.Default
      
      MySettings.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

  1. Ha Ön C#-fejlesztő, adjon hozzá egy eseménykezelőt az Load eseményéhez az űrlap vagy vezérlő SettingChanging eseményében.

    -vagy-

    Ha Ön Visual Basic-fejlesztő, deklarálnia kell a változót Settings a WithEvents kulcsszó 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 Sub
    
  2. Definiá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

  1. Az űrlap vagy vezérlő eseményében Load adjon 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 Sub
    
  2. Definiá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