Freigeben über


Gewusst wie: Anzeigen von Fehlersymbolen für die Formularvalidierung mit der ErrorProvider-Komponente in Windows Forms

Aktualisiert: November 2007

Mit einer ErrorProvider-Komponente in Windows Forms können Sie ein Fehlersymbol anzeigen, wenn ein Benutzer ungültige Daten eingibt. Das Formular muss mindestens zwei Steuerelemente enthalten, damit zwischen den Steuerelementen gewechselt und der Validierungscode dabei aufgerufen werden kann:

So zeigen Sie ein Fehlersymbol an, wenn der Wert eines Steuerelements ungültig ist

  1. Fügen Sie zwei Steuerelemente, z. B. zwei Textfelder, zu Windows Forms hinzu.

  2. Fügen Sie dem Formular eine ErrorProvider-Komponente hinzu.

  3. Wählen Sie das erste Steuerelement aus, und fügen Sie zu seinem Validating-Ereignishandler Code hinzu. Damit dieser Code ordnungsgemäß ausgeführt wird, muss die Prozedur mit dem Ereignis verbunden werden. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Ereignishandlern für Windows Forms zur Laufzeit.

    Der folgende Code überprüft die vom Benutzer eingegebenen Daten auf deren Gültigkeit. Falls die Daten ungültig sind, wird die SetError-Methode aufgerufen. Das erste Argument der SetError-Methode gibt an, neben welchem Steuerelement das Symbol angezeigt wird. Das zweite Argument gibt den angezeigten Fehlertext an.

    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 e)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    protected void textBox1_Validating(Object sender, CancelEventArgs e) 
    {
       try 
       {
          int x = Int32.Parse(textBox1.get_Text());
          errorProvider1.SetError(textBox1, "");
       }
       catch(Exception exp)
       {
          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++) Fügen Sie den folgenden Code im Konstruktor des Formulars ein, um den Ereignishandler zu registrieren.

    this.textBox1.Validating += new
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
    
    this->textBox1->Validating += gcnew
       System::ComponentModel::CancelEventHandler
       (this, &Form1::textBox1_Validating);
    
  4. Führen Sie das Projekt aus. Geben Sie ungültige (in diesem Fall nicht-numerische) Daten in das erste Steuerelement ein, und wechseln Sie anschließend zum zweiten Steuerelement. Wenn das Fehlersymbol angezeigt wird, stellen Sie den Mauszeiger auf das Symbol, um den Fehlertext anzuzeigen.

Siehe auch

Aufgaben

Gewusst wie: Anzeigen von Fehlern innerhalb eines Datasets mit der ErrorProvider-Komponente in Windows Forms

Referenz

SetError

Übersicht über die ErrorProvider-Komponente (Windows Forms)