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

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

  2. Forma bir ErrorProvider bileşen ekleyin.

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