====================================================
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:
Gültigkeit der Email-Adresse mit Hilfe eines Regülären Ausdrucks prüfen(Textbox1):
Dieser Ausdruck definiert die Grundstrucktur einer Email-Adresse:
Fals der eingegebene Text gültig ist, wird eine evtl. vorhandene Fehlermeldung
vom ErrorProvider enfernt:
Falls die Überprüfung fehlschlägt, wird unter Verwendung der Errorprovider.SetError-
Methode eine Fehlermeldung generiert und ein Error-Icon erscheint neben dem Control:
Anschließend kommt dieser Text, um die Zahlen nur zuzulassen(Textbox2):
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):
===================================
===================================
Hier nochmalder Gesamte SourceCode:
===================================
===================================
Credits: Sedrika
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