Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile Windows Forms uygulamalarımızda kullanıcı girişlerini doğrulamak ve hatalı girişler hakkında görsel geri bildirim sağlamak için kullandığımız ErrorProvider
kontrolünü yakından inceleyeceğiz. ErrorProvider
, kullanıcıların formlardaki hataları kolayca fark etmesini ve düzeltmesini sağlayarak kullanıcı deneyimini önemli ölçüde iyileştirir. Gelin, ErrorProvider
'ın temel özelliklerini, metotlarını ve kullanım senaryolarını birlikte keşfedelim.
ErrorProvider
Kontrolü Nedir?
ErrorProvider
kontrolü, bir form üzerindeki kontrollerle ilişkilendirilerek, kullanıcı girişi hatalarını görsel olarak belirtmek için kullanılır. Genellikle, hatalı giriş yapılan bir kontrolün yanında küçük bir hata ikonu (genellikle kırmızı bir ünlem işareti) görüntüler. Fare imleci bu ikonun üzerine getirildiğinde, hatanın açıklamasını içeren bir ipucu (tooltip) gösterir. ErrorProvider
, görsel bir kontrol değildir; formun tasarımcı görünümüne eklenen bir bileşendir.
ErrorProvider
Kontrolünün Temel Özellikleri ve Metotları
ErrorProvider
bileşeni, hata gösteriminin davranışını ve görünümünü özelleştirmek için çeşitli özelliklere sahiptir:
SetError(Control control, string errorMessage)
: Belirli bir kontrole bir hata mesajı atar. Bu metot çağrıldığında, kontrolün yanında hata ikonu görünür ve fare üzerine gelindiğindeerrorMessage
gösterilir. EğererrorMessage
boş bir string (""
) olarak ayarlanırsa, hata ikonu gizlenir.GetError(Control control)
: Belirli bir kontrol için ayarlanmış hata mesajını döndürür.BlinkRate
: Hata ikonunun yanıp sönme hızını (milisaniye cinsinden) belirler.0
olarak ayarlanırsa ikon yanıp sönmez.BlinkStyle
: Hata ikonunun yanıp sönme stilini belirler (AlwaysBlink
,BlinkIfDifferentError
,NeverBlink
).Icon
: Hata olarak görüntülenecek ikonu alır veya ayarlar. Varsayılan olarak kırmızı bir ünlem işaretidir.ContainerControl
:ErrorProvider
'ın hangi konteyner kontrolü (genellikle form) ile ilişkili olduğunu belirtir.
ErrorProvider
Kullanım Senaryoları
1. Basit Bir Metin Kutusu Doğrulaması
Bu örnekte, bir metin kutusunun boş bırakılıp bırakılmadığını kontrol edeceğiz ve eğer boşsa bir hata mesajı göstereceğiz.
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
private ErrorProvider errorProvider1; // Tasarımcıda eklenen ErrorProvider bileşeni
private TextBox textBoxIsim; // Tasarımcıda eklenen isim metin kutusu
private Button buttonKaydet; // Tasarımcıda eklenen Kaydet butonu
public Form1()
{
InitializeComponent();
// Tasarımcıda errorProvider1, textBoxIsim ve buttonKaydet'in eklenmiş olduğunu varsayalım.
// ErrorProvider nesnesini oluştur (eğer tasarımcıda eklemediyseniz)
errorProvider1 = new ErrorProvider();
errorProvider1.BlinkStyle = ErrorBlinkStyle.NeverBlink; // İkonun yanıp sönmemesini sağla
// TextBox'ın TextChanged olayına doğrulama metodunu bağla
this.textBoxIsim.TextChanged += new EventHandler(textBoxIsim_TextChanged);
// Butonun Click olayına kaydetme metodunu bağla
this.buttonKaydet.Click += new EventHandler(buttonKaydet_Click);
}
private void textBoxIsim_TextChanged(object sender, EventArgs e)
{
// Metin kutusu boşsa hata göster, değilse hatayı temizle
if (string.IsNullOrEmpty(this.textBoxIsim.Text))
{
errorProvider1.SetError(this.textBoxIsim, "İsim alanı boş bırakılamaz!");
}
else
{
errorProvider1.SetError(this.textBoxIsim, ""); // Hatayı temizle
}
}
private void buttonKaydet_Click(object sender, EventArgs e)
{
// Butona tıklandığında son bir doğrulama yap
if (string.IsNullOrEmpty(this.textBoxIsim.Text))
{
errorProvider1.SetError(this.textBoxIsim, "İsim alanı boş bırakılamaz!");
MessageBox.Show("Lütfen gerekli alanları doldurun.", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
errorProvider1.SetError(this.textBoxIsim, ""); // Hatayı temizle
MessageBox.Show("Bilgiler başarıyla kaydedildi: " + this.textBoxIsim.Text, "Başarılı", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
2. Sayısal Giriş Doğrulaması
Bu örnekte, bir metin kutusuna sadece sayısal değer girilip girilmediğini kontrol edeceğiz.
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
private ErrorProvider errorProvider1;
private TextBox textBoxYas; // Yaş girişi için metin kutusu
public Form1()
{
InitializeComponent();
errorProvider1 = new ErrorProvider();
errorProvider1.BlinkStyle = ErrorBlinkStyle.NeverBlink;
this.textBoxYas.TextChanged += new EventHandler(textBoxYas_TextChanged);
}
private void textBoxYas_TextChanged(object sender, EventArgs e)
{
int yas;
// Metin kutusundaki değerin sayısal olup olmadığını kontrol et
if (!int.TryParse(this.textBoxYas.Text, out yas))
{
errorProvider1.SetError(this.textBoxYas, "Lütfen geçerli bir sayı girin!");
}
else if (yas < 0 || yas > 120) // Yaş aralığı kontrolü
{
errorProvider1.SetError(this.textBoxYas, "Yaş 0 ile 120 arasında olmalıdır!");
}
else
{
errorProvider1.SetError(this.textBoxYas, ""); // Hatayı temizle
}
}
}
3. Farklı Hata İkonu Kullanımı
ErrorProvider
'ın varsayılan ikonunu değiştirebiliriz.
using System.Windows.Forms;
using System.Drawing; // Icon için
public partial class Form1 : Form
{
private ErrorProvider errorProvider1;
private TextBox textBoxEmail;
public Form1()
{
InitializeComponent();
errorProvider1 = new ErrorProvider();
errorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink; // İkon sürekli yanıp sönsün
// Özel bir ikon yükle (örneğin, bir uyarı ikonu)
try
{
errorProvider1.Icon = new Icon(SystemIcons.Warning, 16, 16); // Sistem uyarı ikonu
}
catch (Exception ex)
{
MessageBox.Show("Özel ikon yüklenirken hata oluştu: " + ex.Message);
}
this.textBoxEmail.TextChanged += new EventHandler(textBoxEmail_TextChanged);
}
private void textBoxEmail_TextChanged(object sender, EventArgs e)
{
// Basit bir e-posta formatı kontrolü
if (!this.textBoxEmail.Text.Contains("@") || !this.textBoxEmail.Text.Contains("."))
{
errorProvider1.SetError(this.textBoxEmail, "Geçerli bir e-posta adresi girin!");
}
else
{
errorProvider1.SetError(this.textBoxEmail, "");
}
}
}
Dikkat Edilmesi Gerekenler
- Doğrulama Mantığı:
ErrorProvider
sadece görsel bir geri bildirim aracıdır. Asıl doğrulama mantığını (boşluk kontrolü, format kontrolü, aralık kontrolü vb.) kodunuzda kendiniz yazmalısınız. - Olay İşleyicileri: Genellikle
TextChanged
,Validating
veyaValidated
gibi olaylardaErrorProvider.SetError()
metodunu çağırarak doğrulama yaparsınız.Validating
olayı, kontrol odağı kaybettiğinde tetiklendiği için daha kapsamlı doğrulamalar için uygun olabilir. - Hata Temizleme: Kullanıcı hatayı düzelttiğinde
ErrorProvider.SetError(control, "")
çağırarak hata ikonunu temizlemeyi unutmayın. - Performans: Çok sayıda kontrol üzerinde sürekli doğrulama yaparken performans sorunları yaşamamak için doğrulama mantığınızı optimize edin.
Evet sevgili Webkolog.net okurları, bu yazımızda C# .NET Framework 4 ile ErrorProvider
kontrolünün temel özelliklerini, metotlarını ve kullanım senaryolarını detaylı bir şekilde inceledik. ErrorProvider
, uygulamalarınızda kullanıcı giriş hatalarını görsel olarak belirtmek ve kullanıcı deneyimini iyileştirmek için etkili bir araçtır. Formlarınızdaki veri girişlerini daha sağlam ve kullanıcı dostu hale getirmek için bu kontrolü etkin bir şekilde kullanabilirsiniz. Umarım bu rehber, C# .NET Framework 4 ile uygulamalar geliştirirken size yardımcı olur. Bir sonraki yazımda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz. Webkolog.net'i takipte kalın!
Hepinize hatasız ve başarılı geliştirme süreçleri dilerim!
0 yorum:
Yorum Gönder