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):Quote:
Imports System.Text.RegularExpressions
Dieser Ausdruck definiert die Grundstrucktur einer Email-Adresse:Quote:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim ctrl As Control = CType(sender, Control)
Fals der eingegebene Text gültig ist, wird eine evtl. vorhandene FehlermeldungQuote:
Dim regex As New Regex("\S+@\S+\.\S+")
vom ErrorProvider enfernt:
Falls die Überprüfung fehlschlägt, wird unter Verwendung der Errorprovider.SetError-Quote:
If regex.IsMatch(ctrl.Text) Then
ErrorProvider1.SetError(ctrl, String.Empty)
Methode eine Fehlermeldung generiert und ein Error-Icon erscheint neben dem Control:
Anschließend kommt dieser Text, um die Zahlen nur zuzulassen(Textbox2):Quote:
Else
ErrorProvider1.SetError(ctrl, "Das ist keine gültige E-Mail Addresse!")
End If
End Sub
Schließlich durchläuft der Click-Eventhandler des "OK"-Buttons alle Controls des FormularesQuote:
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
und überprüft, ob ihre Inhalte fehlerfrei sind, bevor die Anwendung geschlossen werden kann(Button1):
===================================Quote:
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:
===================================Quote:
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






