Hallo Christoph!
Dein Code funktioniert bei mir nicht, keine Ahnung warum. Es werden
mehrere Codes unterstrichen. Den Namen der Textbox
habe ich natürlich geändert. Ehrlich gesagt verstehe ich den Code von dir
auch nicht, Wie gesagt ich bin Anfänger.
Damit der von mir gepostete Code funktioniert, muss eine
ErrorProvider-Komponente (aus dem Werkzeugkasten) auf dem Formular plaziert
werden.
| \\\
| Private Sub TextBox1_Validating( _
| ByVal sender As Object, _
| ByVal e As CancelEventArgs _
| ) Handles TextBox1.Validating
Das Ereignis 'Validating' tritt ein, wenn der Benutzer das Steuerelement
verlässt, etwa, wenn er ein anderen Steuerelement wählt.
| Dim SourceControl As TextBox = DirectCast(sender, TextBox)
Hier holen wir uns einen Verweis auf das Steuerelement, welches das Ereignis
ausgelöst hat.
| Try
| Dim d As Double = Double.Parse(SourceControl.Text)
Mittels 'Double.Parse' wird versucht, den eingegebenen Text als Zahl zu
interpretieren. Alternativ könnte man auch mit 'Double.TryParse' arbeiten.
| If Me.ErrorProvider1.GetError(SourceControl).Length > 0 Then
| Me.ErrorProvider1.SetError(SourceControl, "")
| End If
Der Code wird nur ausgeführt, wenn beim Einlesen der Zahl aus der
eingegebenen Zeichenfolge keine Ausnahme auftritt. Läuft alles glatt, wird
ein allenfalls bereits angezeigter Fehlertext vom Steuerelement entfernt.
| Catch ex As Exception
| Me.ErrorProvider1.SetError( _
| SourceControl, _
| "Value must be a decimal number. (" & ex.Message & ")" _
| )
| End Try
Es ist ein Fehler aufgetreten, deshalb wird ein Fehlertext gesetzt und
angezeigt.
Falls dir am Beispiel oben trotz Blicks in die Dokumentation noch etwas
unklar ist, kannst du hier einfach fragen.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>