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

  1. Form'a iki denetim (örneğin, metin kutuları) Windows ekleyin.

  2. Forma ErrorProvider bir bileşen ekleyin.

  3. İ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 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ş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);  
    
  4. 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.

Ayrıca bkz.