Textbox+Kontrolle des Eintrages

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von JanTU.

    Textbox+Kontrolle des Eintrages

    Hallo,

    ich würde gerne wissen wie ich realisieren kann, dass der Anwender meines Programmes bei einem fehlendem Eintrag in einer Textbox darauf hingewiesen wird.

    Die Textbox soll in diesem Fall z. B. rot umrandet sein o. a. (So etwas ähnliches habe ich jedenfalls schon öfters gesehen).

    Falls möglich würde ich dies auch gerne dahingehend erweitern, dass nur bestimmte Eingaben zulässig sind.

    In einem 1. Schritt habe ich versucht den Inhalt des Textfeldes mit einer If Anweisung zu überprüfen. Allerdings ist mir nicht ganz klar wie ich nun die Textbox farbig hervorhebe bzw. ob es nicht einen eleganteren Weg gibt.


    Vielen Dank für Eure Hilfe

    Jan
    Oder du machst ein Label daneben, was die ForeColor `Red` oder andere Rottöne(deiner Wahl) hat.
    Allerdings kannst du auch die BackColor (müsste glaube so sein) der TextBox ändern.
    Bitte verwende aber keine zu grellen Farben (Augenkrebs !!!).

    MfG
    Mach doch einfach

    VB.NET-Quellcode

    1. TextBox1.BackColor = Color.Red


    Ist extrem offensichtlich

    Du kannst es überprüfen lassen beim Textbox LostFocus bzw Validating Event.

    Nur gewisse Zeichen zulassen
    vbarchiv.net/tipps/tipp_543-nu…xtbox-zulassen-vbnet.html
    (der Sinn hinter dem Link sollte denk ich klar sein)

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Gültigkeitsüberprüfung ist ein eigenes wichtiges Gebiet inne Programmiererei, und WinForms bietet da ziemlich geniale Konzepte zu an: Control.Validating + ErrorProvider

    Das mit dem roten Rand kennich als ein Standard-Feature von Wpf. Die hams da natürlich noch weiter getrieben.

    Weitere Fragen

    Hallo,

    erstmal Danke für Eure Antworten.

    Vielen Dank an fichz (Nur gewisse Zeichen zuzulassen hilft mir schonmal weiter).


    Das mit dem Errorprovider // Control.Validating hört sich recht interessant an.

    Ich habe mir einen Ausschnitt aus dem Code (Link von ErfinderDesRades) kopiert. Allerdings läuft dieser Ausschnitt bei mir nicht [VS 2010].


    Imports System.ComponentModel

    Public Class frmErrProvider

    Private Sub SingleValidation_Validating(ByVal sender As Object, _
    ByVal e As CancelEventArgs) Handles txtSingleValidation.Validating

    Me.ErrProvider.Clear()
    Dim TB As TextBox = DirectCast(sender, TextBox)
    If TB.Text <> "a" Then
    e.Cancel = True
    Me.ErrProvider.SetError(TB, "Bitte 'a' eingeben")
    End If
    End Sub

    End Class


    Ich erhalte folgende Fehlermeldungen:

    a: txtSingleValidation --> Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenen Typ oder einem seiner Basistypen definiert ist.

    Me.ErrProvider --> "ErrProvider" ist kein Member von "WindowsApplication1.frmErrProvider"


    Was bedeuten diese Fehler bzw. wie bekomme ich den Code lauffähig.
    An dieser Stelle möchte ich noch erwähnen das ich diesen Code nur in ein leeres Code-Fenster kopiert habe.


    Vielen Dank im Voraus,

    Jan
    Mit Errorprovider is ne interessante Sache...
    Ich prüfe Textboxeingaben im Textchanged mit Tryparse auf Ihre Gültigkeit und mach dann folgendes:
    1. Tryparse gibt true zurück >> Eingabe in Tag-Eigenschaft kopieren
    2. Tryparse gibt false zurück >> alte Eingabe aus Tag-Eigenschaft zurückholen und Cursor ans Ende schieben
    Damit bleibt bei Tippfehlern (wegen zu breiter Daumen) davor verschont, alles nochma eingeben zu müssen.
    Was mir noch nicht gelungen ist:
    Die Prüfung in eine Sub auslagern, der man den Datentyp als Eingabeparameter übergeben kann:

    VB.NET-Quellcode

    1. Sub PruefTextbox (TB as Textbox, PrüfTyp as Typ)
    2. 'Prüfcode wie beschrieben mit
    3. Prüftyp.Tryparse(.....)
    4. '...
    Wie könnte man sowas realisieren?

    Fiele Grüße

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup: