Udostępnij za pośrednictwem


Instrukcje: wyświetlanie ikon błędów sprawdzania poprawności formularza za pomocą składnika ErrorProvider formularzy systemu Windows

Możesz użyć składnika ErrorProvider Windows Forms, aby wyświetlić ikonę błędu, gdy użytkownik wprowadzi nieprawidłowe dane. Aby przełączać się między kontrolkami za pomocą klawisza Tab, musisz mieć co najmniej dwie kontrolki w formularzu, co pozwala na wywołanie kodu walidacji.

Aby wyświetlić ikonę błędu, gdy wartość kontrolki jest nieprawidłowa

  1. Dodaj dwie kontrolki — na przykład pola tekstowe — do formularza systemu Windows.

  2. Dodaj składnik ErrorProvider do formularza.

  3. Wybierz pierwszą kontrolkę i dodaj kod do obsługiwacza zdarzeń Validating. Aby ten kod działał prawidłowo, procedura musi być połączona ze zdarzeniem. Aby uzyskać więcej informacji, zobacz Jak: Tworzyć obsługę zdarzeń w czasie wykonywania dla Windows Forms.

    Poniższy kod testuje ważność danych wprowadzonych przez użytkownika; jeśli dane są nieprawidłowe, wywoływana jest metoda SetError. Pierwszy argument metody SetError określa, która kontrolka ma wyświetlać ikonę obok. Drugi argument to tekst błędu do wyświetlenia.

    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++) Umieść następujący kod w konstruktorze formularza, aby zarejestrować procedurę obsługi zdarzeń.

    this.textBox1.Validating += new  
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);  
    
    this->textBox1->Validating += gcnew  
       System::ComponentModel::CancelEventHandler  
       (this, &Form1::textBox1_Validating);  
    
  4. Uruchom projekt. Wpisz nieprawidłowe dane (w tym przykładzie, nieliczbowe) w pierwszej kontrolce, a następnie przejdź do drugiej. Gdy zostanie wyświetlona ikona błędu, wskaż ją wskaźnikiem myszy, aby wyświetlić tekst błędu.

Zobacz też