ErrorProvider / fehlerhafte Eingaben abfangen

Frostie10

Grünschnabel
Hi!

Ich versuche gerade für eine Textbox nur bestimmte Werte zu zulassen.
Habe auch schon folgendes geschafft. Es funktioniert auch, nur wenn ich keinen Wert mehr in der Textbox stehen habe und woanders hinklicke, erscheint folgende Fehlermeldung: INvalidCastException wurd nicht von Benutzercode behandelt. Ungültige Konvertierung von der Zeichenfolge in Typ Double.
Und das obwohl ich verhindern wollte, dass man das Feld verlassen kann, wenn der Wert falsch ist.

Code:
   Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating
        If TextBox2.Text > 10 Then
            ErrorProvider1.SetError(TextBox2, "Fehler")
            e.Cancel = True
        Else
            ErrorProvider1.SetError(TextBox2, "")
        End If
    End Sub

Wie kann ich diesen Fahler beheben?
 
Das was du da machst ist einfach falsch. C# würde dir sowas von auf die Finger hauen dafür :D

Du darfst nicht einfach String und Integer miteinander vergleichen. Stattdessen:

Code:
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Dim zahl = 0

        If Integer.TryParse(TextBox1.Text, zahl) Then
            If zahl > 10 Then
                ErrorProvider1.SetError(TextBox1, "Zahl groeßer als 10!")
            End If
        Else
            ErrorProvider1.SetError(TextBox1, Nothing)
        End If
    End Sub
 

Neue Beiträge

Zurück