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
Fügen Sie zwei Steuerelemente, z. B. zwei Textfelder, zu Windows Forms hinzu.
Fügen Sie dem Formular eine ErrorProvider-Komponente hinzu.
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);
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.