Aracılığıyla paylaş


Nasıl yapılır: Windows Forms ErrorProvider Bileşeni ile Form Doğrulaması için Hata Simgelerini Görüntüleme

Kullanıcı geçersiz veri girdiğinde hata simgesi görüntülemek için 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şeni ekleyin.

  3. İlk denetimi seçin ve Validating olay işleyicisine 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, SetError yöntemi çağrılır. SetError yönteminin ilk bağımsız değişkeni, simgeyi yanında göstereceği denetimin hangisi olduğunu 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ırın. İ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 bakınız