Nasıl yapılır: Uygulama Ayarlarını Doğrulama
Bu konuda, uygulama ayarlarının kalıcı olmadan önce nasıl doğrulanacağı gösterilmektedir.
Uygulama ayarları kesin olarak yazıldığından, kullanıcıların yanlış türde verileri belirli bir ayara atayamadığı bazı güvenlerdir. Bununla birlikte, bir Kullanıcı, kabul edilebilir sınırların dışında kalan bir ayara bir değer atamayı deneyebilir (örneğin, gelecekte oluşan bir Doğum tarihi sağlama). ApplicationSettingsBaseTüm uygulama ayarları sınıflarının üst sınıfı, bu tür sınırlar denetimini etkinleştirmek için dört olay sunar. Bu olayları işlemek, tüm doğrulama kodunuzu projeniz genelinde saçmak yerine tek bir konuma koyar.
Kullandığınız olay, aşağıdaki tabloda açıklandığı gibi ayarlarınızı doğrulamanız gerektiğinde değişir.
| Olay | Oluşum ve kullanım |
|---|---|
| SettingsLoaded | Bir ayarlar özellik grubunun ilk yüklemesiyle sonra oluşur. Uygulama içinde kullanılmadan önce tüm özellik grubunun başlangıç değerlerini doğrulamak için bu olayı kullanın. |
| SettingChanging | Tek bir Settings özelliğinin değeri değiştirilmeden önce oluşur. Değiştirilmeden önce tek bir özelliği doğrulamak için bu olayı kullanın. Bu, kullanıcılara eylemlerle ve seçimleriyle ilgili anında geri bildirim sağlayabilir. |
| PropertyChanged | Tek bir Settings özelliğinin değeri değiştirildikten sonra gerçekleşir. Değiştirildikten sonra tek bir özelliği doğrulamak için bu olayı kullanın. Bu olay, daha uzun bir zaman uyumsuz doğrulama işlemi gerekli olmadığı sürece doğrulama için nadiren kullanılır. |
| SettingsSaving | Ayarlar özellik grubu depolanmadan önce oluşur. Tüm özellik grubu değerlerini diske kalıcı yapmadan önce doğrulamak için bu olayı kullanın. |
Genellikle, doğrulama amacıyla aynı uygulama içinde bu olayların tümünü kullanamazsınız. Örneğin, genellikle yalnızca olayını işleyerek tüm doğrulama gereksinimlerinin yerine getirilmesi mümkündür SettingChanging .
Bir olay işleyicisi, geçersiz bir değer algıladığında, genellikle aşağıdaki eylemlerden birini gerçekleştirir:
, Varsayılan değer gibi, doğru olarak bilinen bir değeri otomatik olarak sağlar.
Bilgi için sunucu kodu kullanıcısını yeniden sorgular.
Ve gibi ilişkili eylemlerinden önce oluşturulan olaylar için, SettingChanging SettingsSaving CancelEventArgs işlemi iptal etmek için bağımsız değişkenini kullanır.
Olay işleme hakkında daha fazla bilgi için bkz. olay Işleyicilerine genel bakış.
Aşağıdaki yordamlarda, ya da olayını kullanarak geçerli bir Doğum tarihinin nasıl test yapılacağı gösterilmektedir SettingChanging SettingsSaving . Yordamlar, uygulama ayarlarınızı zaten oluşturmuş olduğunuz varsayımına göre yazılmıştır; Bu örnekte, adlı bir ayar üzerinde sınır denetimi gerçekleştireceğiz DateOfBirth . ayarları oluşturma hakkında daha fazla bilgi için bkz. nasıl yapılır: uygulama oluşturma Ayarlar.
Uygulama Ayarları nesnesini almak için
Aşağıdaki madde işaretli öğelerden birini tamamlayarak uygulama ayarları nesnesine (sarmalayıcı örneği) bir başvuru alın:
ayarlarınızı, özellik düzenleyicisinde Visual Studio uygulama Ayarlar iletişim kutusunu kullanarak oluşturduysanız, aşağıdaki ifade aracılığıyla diliniz için oluşturulan varsayılan ayarlar nesnesini alabilirsiniz.
Properties.Settings.DefaultMySettings.Default-veya-
Visual Basic geliştiricisiyseniz ve Project tasarımcısını kullanarak uygulama ayarlarınızı oluşturduysanız, My. Ayarlar nesnesinikullanarak ayarlarınızı alabilirsiniz.
-veya-
Ayarlarınızı doğrudan türeterek oluşturduysanız ApplicationSettingsBase , sınıfınızın el ile örneğini oluşturmanız gerekir.
MyCustomSettings settings = new MyCustomSettings();Dim Settings as New MyCustomSettings()
Aşağıdaki yordamlar, bu yordamdaki son madde işaretli öğeyi tamamlayarak uygulama ayarları nesnesinin elde edildiği varsayımına göre yazılmıştır.
bir ayar değiştirilirken uygulama Ayarlar doğrulamak için
Bir C# geliştiricisiyseniz, formunuzda veya denetiminizin
Loadolayında olay için bir olay işleyicisi ekleyin SettingChanging .-veya-
Visual Basic geliştiriciyseniz,
Settingsanahtar sözcüğünü kullanarak değişkeni bildirmeniz gerekirWithEvents.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 SubOlay işleyicisini tanımlayın ve bu kodun içinde, Doğum tarihinde sınır denetimi yapmak için kodu yazın.
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
bir kayıt gerçekleştiğinde uygulama Ayarlar doğrulamak için
Formunuzda veya denetiminizin
Loadolayında, olay için bir olay işleyicisi ekleyin SettingsSaving .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 SubOlay işleyicisini tanımlayın ve bu kodun içinde, Doğum tarihinde sınır denetimi yapmak için kodu yazın.
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