Nasıl yapılır: Windows Forms ErrorProvider Bileşeni ile Form Doğrulama için Hata Simgeleri Görüntüleme
Kullanıcı geçersiz veri girdiğinde hata simgesi görüntülemek için bir Windows Forms ErrorProvider bileşeni kullanabilirsiniz. Bunlar arasında sekme tuşuyla geçiş yapmak ve böylece doğrulama kodunu çağırmak için formda en az iki denetiminiz olmalıdır.
Denetimin değeri geçersiz olduğunda hata simgesini görüntülemek için
Windows Formu'na iki denetim (örneğin, metin kutuları) ekleyin.
Forma bir ErrorProvider bileşen ekleyin.
İlk denetimi seçin ve olay işleyicisine Validating kod ekleyin. Bu kodun düzgün çalışması için yordamın olaya bağlı olması gerekir. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms için Çalışma Zamanında Olay İşleyicileri Oluşturma.
Aşağıdaki kod, kullanıcının girdiği verilerin geçerliliğini test eder; veriler geçersizse yöntemi SetError çağrılır. yönteminin SetError ilk bağımsız değişkeni, simgesinin yanında hangi denetimin görüntüleneceğini belirtir. İkinci bağımsız değişken, görüntülenecek hata metnidir.
Private Sub TextBox1_Validating(ByVal Sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) Handles _ TextBox1.Validating If Not IsNumeric(TextBox1.Text) Then ErrorProvider1.SetError(TextBox1, "Not a numeric value.") Else ' Clear the error. ErrorProvider1.SetError(TextBox1, "") End If End Sub
protected void textBox1_Validating (object sender, System.ComponentModel.CancelEventArgs e) { try { int x = Int32.Parse(textBox1.Text); errorProvider1.SetError(textBox1, ""); } catch (Exception ex) { errorProvider1.SetError(textBox1, "Not an integer value."); } }
private: System::Void textBox1_Validating(System::Object ^ sender, System::ComponentModel::CancelEventArgs ^ e) { try { int x = Int32::Parse(textBox1->Text); errorProvider1->SetError(textBox1, ""); } catch (System::Exception ^ ex) { errorProvider1->SetError(textBox1, "Not an integer value."); } }
(Visual C#, Visual C++) Olay işleyicisini kaydetmek için formun oluşturucusunda aşağıdaki kodu yerleştirin.
this.textBox1.Validating += new System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
this->textBox1->Validating += gcnew System::ComponentModel::CancelEventHandler (this, &Form1::textBox1_Validating);
Projeyi çalıştırma. İlk denetime geçersiz (bu örnekte sayısal olmayan) veriler yazın ve ardından sekme tuşuyla ikinci denetime geçin. Hata simgesi görüntülendiğinde, hata metnini görmek için fare işaretçisiyle üzerine gelin.
Ayrıca bkz.
.NET Desktop feedback