[TuT] ErrorProvider nutzen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [TuT] ErrorProvider nutzen

      ====================================================

      In diesem Tutorial zeige ich euch, wie wir den ErrorProvider zur Geltung bringen.

      ===================================
      ===================================

      Der ErrorProvider ist sinnvoll, um den nutzen ihre fehler zu zeigen,
      damit diese den fehler bessern können.

      In diesem Beispiel wird der Inhalt der Textboxen eines Formulares bei
      jedem Tastendruck überprüft. Bei der ersten Textbox wird ein Regülärer
      Ausdruck benutzt um festzustellen, ob es sich um eine gültige Email-
      Adresse andelt, bei der zweiten Textbox wird geprüft, ob wirklich eine
      Zahl eingegeben wurde.

      ===================================
      ===================================

      •Was wir brauchen
      - 2x Label (Label1.Text = Email:, Label2.Text = Preis(€):
      - 1x Button (Text = OK)
      - 1x ErrorProvider

      ===================================
      ===================================




      ===================================
      ===================================

      Zuerst kommt über die Public Class Form1 dieser Text:
      Imports System.Text.RegularExpressions


      Gültigkeit der Email-Adresse mit Hilfe eines Regülären Ausdrucks prüfen(Textbox1):
      Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
      Dim ctrl As Control = CType(sender, Control)


      Dieser Ausdruck definiert die Grundstrucktur einer Email-Adresse:
      Dim regex As New Regex("\S+@\S+\.\S+")


      Fals der eingegebene Text gültig ist, wird eine evtl. vorhandene Fehlermeldung
      vom ErrorProvider enfernt:
      If regex.IsMatch(ctrl.Text) Then
      ErrorProvider1.SetError(ctrl, String.Empty)


      Falls die Überprüfung fehlschlägt, wird unter Verwendung der Errorprovider.SetError-
      Methode eine Fehlermeldung generiert und ein Error-Icon erscheint neben dem Control:
      Else
      ErrorProvider1.SetError(ctrl, "Das ist keine gültige E-Mail Addresse!")
      End If
      End Sub


      Anschließend kommt dieser Text, um die Zahlen nur zuzulassen(Textbox2):
      Private preis As Decimal = 0

      Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
      Dim ctrl As Control = CType(sender, Control)
      Try
      preis = Decimal.Parse(TextBox2.Text)
      ErrorProvider1.SetError(ctrl, String.Empty)
      Catch
      ErrorProvider1.SetError(ctrl, "Das ist keine gültige Zahl!")
      End Try
      End Sub


      Schließlich durchläuft der Click-Eventhandler des "OK"-Buttons alle Controls des Formulares
      und überprüft, ob ihre Inhalte fehlerfrei sind, bevor die Anwendung geschlossen werden kann(Button1):
      Private nl As String = Environment.NewLine

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim errorText As String = String.Empty
      Dim invalidInput As Boolean = False

      For Each ctrl As Control In Me.Controls
      If ErrorProvider1.GetError(ctrl) <> String.Empty Then
      errorText &= " - " & ErrorProvider1.GetError(ctrl) & nl
      invalidInput = True
      End If
      Next ctrl

      If invalidInput Then
      MessageBox.Show("Das Formular enthält unbehandelte Fehler:" & nl & errorText, _
      "Fehlerhafte Eingabe", MessageBoxButtons.OK, MessageBoxIcon.Warning)
      Else
      Me.Close()
      End If
      End Sub


      ===================================
      ===================================

      Hier nochmalder Gesamte SourceCode:

      Imports System.Text.RegularExpressions

      Public Class Form1

      ' Gültigkeit der EMail-Adresse prüfen:
      Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
      Dim ctrl As Control = CType(sender, Control)
      Dim regex As New Regex("\S+@\S+\.\S+")
      If regex.IsMatch(ctrl.Text) Then
      ErrorProvider1.SetError(ctrl, String.Empty)
      Else
      ErrorProvider1.SetError(ctrl, "Das ist keine gültige E-Mail Addresse!")
      End If
      End Sub


      ' Nur Zahleneingaben zulassen:

      Private preis As Decimal = 0

      Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
      Dim ctrl As Control = CType(sender, Control)
      Try
      preis = Decimal.Parse(TextBox2.Text)
      ErrorProvider1.SetError(ctrl, String.Empty)
      Catch
      ErrorProvider1.SetError(ctrl, "Das ist keine gültige Zahl!")
      End Try
      End Sub

      Private nl As String = Environment.NewLine

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim errorText As String = String.Empty
      Dim invalidInput As Boolean = False

      For Each ctrl As Control In Me.Controls
      If ErrorProvider1.GetError(ctrl) <> String.Empty Then
      errorText &= " - " & ErrorProvider1.GetError(ctrl) & nl
      invalidInput = True
      End If
      Next ctrl

      If invalidInput Then
      MessageBox.Show("Das Formular enthält unbehandelte Fehler:" & nl & errorText, _
      "Fehlerhafte Eingabe", MessageBoxButtons.OK, MessageBoxIcon.Warning)
      Else
      Me.Close()
      End If
      End Sub
      End Class


      ===================================
      ===================================
      Credits: Sedrika
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )