Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu başlığında uygulama ayarlarının kalıcı hale gelmeden önce nasıl doğrulandığı gösterilmektedir.
Uygulama ayarları kesin olarak yazıldığından, kullanıcıların belirli bir ayara yanlış türde veriler atayamayacağına güvenebilirsiniz. Ancak, kullanıcı yine de kabul edilebilir sınırların dışında kalan bir ayara değer atamaya çalışabilir; örneğin, gelecekte gerçekleşecek bir doğum tarihi sağlama. tüm uygulama ayarları sınıflarının üst sınıfı olan ApplicationSettingsBase, bu tür sınır denetimini etkinleştirmek için dört olayı kullanıma sunar. Bu olayları işlemek, tüm doğrulama kodunuzu projenize yaymak yerine tek bir konuma yerleştirir.
Kullandığınız olay, aşağıdaki tabloda açıklandığı gibi ayarlarınızı doğrulamanız gereken zamanlara bağlıdır.
| Etkinlik | Oluşum ve kullanım |
|---|---|
| SettingsLoaded | Ayar özellik grubunun ilk yüklenmesinden sonra meydana gelir. Uygulama içinde kullanılmadan önce özellik grubunun tamamı için başlangıç değerlerini doğrulamak için bu olayı kullanın. |
| SettingChanging | Tek bir ayarlar özelliğinin değeri değiştirilmeden önce gerçekleşir. Tek bir özelliği değiştirilmeden önce doğrulamak için bu olayı kullanın. Kullanıcılara eylemleri ve seçimleri hakkında anında geri bildirim sağlayabilir. |
| PropertyChanged | Tek bir ayarlar ö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, uzun ve zaman uyumsuz bir doğrulama işlemi gerekmediği sürece doğrulama için nadiren kullanılır. |
| SettingsSaving | Ayarlar özellik grubu depolanmadan önce gerçekleşir. Diskte kalıcı hale gelmeden önce tüm özellik grubunun değerlerini doğrulamak için bu olayı kullanın. |
Genellikle, doğrulama amacıyla bu olayların tümünü aynı uygulama içinde kullanmazsınız. Örneğin, genellikle yalnızca SettingChanging olayını işleyerek tüm doğrulama gereksinimlerini karşılamak mümkündür.
Olay işleyicisi genellikle geçersiz bir değer algıladığında aşağıdaki eylemlerden birini gerçekleştirir:
Varsayılan değer gibi doğru olduğu bilinen bir değeri otomatik olarak sağlar.
Sunucu kodunun kullanıcısını bilgi için yeniden sorgular.
İlişkili eylemlerinden önce tetiklenen SettingChanging ve SettingsSavinggibi olaylar için, işlemi iptal etmek amacıyla CancelEventArgs bağımsız değişkeni kullanılır.
Olay işleme hakkında daha fazla bilgi için bkz. Olay İşleyicilerine Genel Bakış.
Aşağıdaki yordamlar, SettingChanging veya SettingsSaving olayını kullanarak geçerli bir doğum tarihini test etme işlemini gösterir. Yordamlar, uygulama ayarlarınızı oluşturduğunuz varsayımı altında yazılmıştır; bu örnekte, DateOfBirthadlı bir ayar üzerinde sınır denetimi gerçekleştireceğiz. Ayarları oluşturma hakkında daha fazla bilgi için bkz. Nasıl yapılır: Uygulama Ayarları Oluşturma.
Uygulama ayarları nesnesini almak için
Aşağıdaki madde işaretli öğelerden birini tamamlayarak uygulama ayarları nesnesine (sarmalayıcı örneği) başvuru alın:
ayarlarınızı Özellik DüzenleyicisiVisual Studio Uygulama Ayarları iletişim kutusunu kullanarak oluşturduysanız, aşağıdaki ifadeyle diliniz için oluşturulan varsayılan ayarlar nesnesini alabilirsiniz.
Properties.Settings.DefaultMySettings.Default-veya-
Visual Basic geliştiricisiyseniz ve uygulama ayarlarınızı Proje Tasarımcısı'nı kullanarak oluşturduysanız, My.Settings Nesnesikullanarak ayarlarınızı alabilirsiniz.
-veya-
ApplicationSettingsBase'dan doğrudan kalıtım alarak ayarlarınızı oluşturduysanız, sınıfınızı el ile örneklemeniz gerekir.
MyCustomSettings settings = new MyCustomSettings();Dim Settings as New MyCustomSettings()
Aşağıdaki yordamlar, uygulama ayarları nesnesinin bu işlemin son madde işaretli adımı tamamlanarak alındığı varsayımı altında yazılmıştır.
Bir ayar değişirken Uygulama Ayarlarını doğrulamak için
C# geliştiricisiyseniz formunuzun veya denetiminizin
Loadolayına SettingChanging olayı için bir olay işleyicisi ekleyin.-veya-
Visual Basic geliştiricisiyseniz
Settingsanahtar sözcüğünü kullanarakWithEventsdeğişkenini bildirmeniz gerekir.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 doğum tarihinde sınır denetimi gerçekleştirmek için içindeki 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
Kaydetme gerçekleştiğinde Uygulama Ayarlarını doğrulamak için
Formunuzun veya denetiminizin
Loadolayına SettingsSaving olayı için bir olay işleyicisi ekleyin.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 doğum tarihinde sınır denetimi gerçekleştirmek için içindeki 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
Ayrıca bakınız
.NET Desktop feedback