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 Windows hata simgesini görüntülemek için bir Windows Forms ErrorProvider bileşeni kullanabilirsiniz. Aralarında sekme oluşturmak ve doğrulama kodunu çağırmak için formda en az iki denetime sahip olmak gerekir.
Bir denetimin değeri geçersiz olduğunda hata simgesini görüntülemek için
Form'a iki denetim (örneğin, metin kutuları) Windows ekleyin.
Forma ErrorProvider bir bileşen ekleyin.
İlk denetimi seçin ve olay işleyicisi için Validating kod ekleyin. Bu kodun düzgün çalışması için yordamın olayla bağlantılı olması gerekir. Daha fazla bilgi için, bkz. How to: Create Event Handlers at Run Time for Windows Forms.
Aşağıdaki kod, kullanıcının girdiği verilerin geçerliliğini test etmiştir; Veriler geçersizse yöntemi SetError çağrılır. yönteminin ilk bağımsız SetError değişkeni, simgesinin yanında hangi denetimin görüntülen bir denetim olduğunu belirtir. İkinci bağımsız değişken, görüntüleniyor olan 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 Subprotected 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şturucus una aşağıdaki kodu ekleyin.
this.textBox1.Validating += new System.ComponentModel.CancelEventHandler(this.textBox1_Validating);this->textBox1->Validating += gcnew System::ComponentModel::CancelEventHandler (this, &Form1::textBox1_Validating);Projeyi çalıştırın. İlk denetime geçersiz (bu örnekte sayısal olmayan) veriler yazın ve ikinci denetime sekme tuşuna basın. Hata simgesi görüntülendiğinde, hata metnini görmek için fare işaretçisi ile üzerine gelin.