Zum Inhalt

AppHelp

ErrorProvider Komponente (Windows Forms)

Die Windows Forms ErrorProvider-Komponente wird verwendet, um dem Benutzer anzuzeigen, dass etwas nicht in Ordnung ist. Sie wird in der Regel in Verbindung mit der Validierung von Benutzereingaben in einem Formular oder der Anzeige von Fehlern innerhalb eines Datensatzes verwendet.

Windows Forms unterstützt ErrorProvider-Hilfe bei Steuerelementen für eine Gültigkeitsprüfung von Dateneingaben. Normalerweise geht die Validierung nicht viel weiter als eine Überprüfung der maximalen Länge von Textfeldern. Aber dies ist eine nützliche Methode, mit der Sie die Validierung zum Kinderspiel machen können.

ErrorProvider AppHelp

Wenn ein Validierungsfehler auftritt, wird das rote Fehlersymbol angezeigt. Wenn Sie mit der Maus darüberfahren, erscheint ein Tooltip mit Informationen zum ungültigen Feld. Die Fehlersymbolmethode ist viel besser als ein Popup-Fenster, da dies eine unnötige Unterbrechung darstellen würde. So erhalten wir eine Methode, um unauffällig anzuzeigen, dass Daten ungültig sind, und zwar so, dass sofort ersichtlich ist, was falsch ist und was zu tun ist.

Um ErrorProvider-Hilfe in Ihrer Anwendung bereitzustellen, müssen Sie die ErrorProvider-Komponente verwenden, die Sie in der Toolbox auf der Registerkarte „Windows Forms” finden. Ziehen Sie eine ErrorProvider-Komponente aus der Toolbox per Drag & Drop auf Ihr Formular. Es handelt sich eher um eine Komponente als um ein Steuerelement, sodass sie beim Platzieren auf Ihrem Formular in der Komponentenleiste darunter angezeigt wird. Diese Komponente weist jedem Steuerelement im Formular eine neue Eigenschaft namens Error on ErrorProvider1 zu.

ErrorProvider AppHelp

Sie können die Eigenschaft „Error on ErrorProvider1” des Felds txtAddressZipCode setzen, aber das entspricht nicht wirklich der Absicht der ErrorProvider-Komponente. Sie sehen zwar das rote Symbol in der Entwicklungsumgebung aber bei Verzicht auf eine Gültigkeitsprüfung per Code kann besser die ToolTip-Komponente genutzt werden.

ErrorProvider AppHelp

Die bessere Idee ist, einen Ereignishandler für die Gültigkeitsprüfung im Formular zu erstellen und den folgenden Code hinzuzufügen. Um den Fehler zu löschen, übergeben Sie einfach eine leere Zeichenfolge String.Empty.

ErrorProvider Code Beispiel

Private Sub cmdInputValidation_Click(sender As Object, e As EventArgs) Handles cmdInputValidation.Click
    Dim sAddressEmail As String = txtAddressEmail.Text
    Dim sAddressZipCode As String = txtAddressZipCode.Text
    Dim sAddressTownName As String = cboTownName.Text
    Dim sMessage As String
    Dim IsValidationError As Boolean = False

    '----- set error message when @ is missing -----
    If InStr(sAddressEmail, "@") = 0 Then
        ErrorProvider1.SetError(txtAddressEmail, "Missing '@' - Please enter the complete e-mail address")
        IsValidationError = True
    Else
        ErrorProvider1.SetError(txtAddressEmail, String.Empty)
    End If

    '----- input validation of ZipCode -----
    If Not IsNumeric(sAddressZipCode) Or Len(sAddressZipCode) <> 5 Then
        ErrorProvider1.SetError(txtAddressZipCode, "Please enter 5 digits")
        IsValidationError = True
    Else
        ErrorProvider1.SetError(txtAddressZipCode, String.Empty)
    End If

    '----- set error message when len = 0 -----
    If Len(Trim(sAddressTownName)) = 0 Then
        ErrorProvider1.SetError(cboTownName, "Please enter the town name")
        IsValidationError = True
    Else
        ErrorProvider1.SetError(cboTownName, String.Empty)
    End If

    '--- Continue when all the text boxes are valid
    If IsValidationError = True Then
        sMessage = sAddressEmail & " " & sAddressZipCode & " " & sAddressTownName
        MessageBox.Show(sMessage, "Error occured - Stop processing code")
        Exit Sub
    End If

    sMessage = sAddressEmail & " " & sAddressZipCode & " " & sAddressTownName
    MessageBox.Show(sMessage, "No Error occured - Continue processing code")

End Sub

ErrorProvider Besonderheiten

Hinweis

Sie können einen zweiten ErrorProvider mit einem gelben Symbol (16x16 vom Entwickler definiert) anstelle eines roten Symbols in Ihrem Formular verwenden, wenn ein Feld zwar gültig ist, aber besser ausgefüllt werden könnte.

ErrorProvider AppHelp