Problem bei Aktualisierung des ".Caprion" Wertes

schocker

Grünschnabel
Hallo alle zusammen,

ich brauche unbedingt Hilfe von euch.

Es soll eine Textbox permanent auf ihre Zeichenlänge geprüft werden, also wird das Event "KeyDown" angewand. Wird eine Taste gedrückt soll in der "Caption" der TextBox eine entsprechende Meldung erfolgen "Es sind noch 254 Zeichen übrig".
Nun ist das Problemm da, dass die "Caprion" Ihren Wert nur bei Fokuserhalt bzw. nur beim ersten Tastendruck ändert. Dies müsste jedoch permanent passieren, denn ich will noch die Überlänge von 255 Zeichen mit entsprechender Meldung und Hinweis auf Überlänge abfangen.

Quellcode:
Code:
Private Sub Bemerkung_Text()
Me.KeyPreview = True
    If Me.Bemerkung <> "" Then
        Me.Bemerkung.ControlTipText = "Maximal 255 Zeichen. Noch " + CStr(255 - Len(Me.Bemerkung)) + " Zeichen übrig!"
        Me.WB_Bemerkung_Bez.Caption = "Bemerkung: Die Bemerkung darf nicht länger als 255 Zeichen lang sein." + CStr(255 - Len(Me.Bemerkung)) + " Zeichen übrig!"
    Else
        Me.Bemerkung = " _ "
    End If
End Sub



Private Sub Bemerkung_KeyDown(KeyCode As Integer, Shift As Integer)
    Me.KeyPreview = True
    If KeyCode > 0 Then
        Bemerkung_Text
        MsgBox "test"
    End If
End Sub
 
Hi,
sag mal, was soll den
Code:
Me.Bemerkung = " _ "
bezwecken? Außer dass es gleich am Anfang 3 Zeichen weg nimmt.
Nach dem ersten Tastendruck klappt natürlich auch die aktualisierung nicht, weil wenn Bemerkung leer ist, soll ja " _ " rein geschrieben werden, und nicht die Zeichen runter gezählt werden.
Danach klappt eigentlich alles reibungslos bei mir.
 
schocker hat gesagt.:
Wird eine Taste gedrückt soll in der "Caption" der TextBox
Die Textbox hat keine Eigenschaft "Caption". Meinst du ToolTipText? Oder soll der Text in einem Label angezeigt werden?
Weißt du, dass die Textbox eine Eigenschaft "MaxLength" hat? Darin kannst du festlegen, wie viele Zeichen in der Textbox zugelassen seien sollen.

Du verwendest folgende If-Abfrage:
Visual Basic:
... If KeyCode > 0 Then ...
Gibt es einen Fall, bei dem KeyCode gleich 0 ist? Mir erscheint diese Abfrage überflüssig.

Außerdem hast du immer wieder
Visual Basic:
Me.KeyPreview = True
in deinem Code drin. Warum? Änderst du die KeyPreview-Eigenschaft auch irgendwo auf False?

Ach ja, eine letzte Frage zum besseren Verständnis, was ist "Bemerkung" für ein Control?
 
Zurück