Hallo zusammen
Wenn ich in einer Textbox etwas eingebe, soll es mir nach 3 eingegebenen Zeichen einen „Punkt“ generieren. Wie kann ich dies bewerkstelligen??
Ebenfalls möchte ich, dass nach 15 eingegebenen Zeichen, keine weiteren Eingaben möglich sind.
Vielen Dank für eure Hilfe
MFG
ist noch nicht perfekt, weil der user ans ende der zeile clicken muss um weiter zu schreiben aber mit dem ansatz kommst du hoffentlich weiter
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
'nach 3 Zeichen einen Punkt einfügen
If TextBox1.Text.Length = 3 Then
TextBox1.Text = TextBox1.Text & „.“
End If
'nach 15 ist Schluss 
If TextBox1.Text.Length > 15 Then
TextBox1.Text = TextBox1.Text.Substring(0, 15)
End If
End Sub
Ja sowas hatte ich auch schon. Trotzdem Danke. Ich suche leider nach einer besseren Variante… Sorry das ich mein Ergebniss nicht schon vorher postete.
Hat jemand vielleich eine Variante in der der User nicht ans Ende klicken muss?
Vielen Dank für eure Hilfe!
Hi,
Hat jemand vielleich eine Variante in der der User nicht ans
Ende klicken muss?
Du hast Dir den Code nicht richtig angesehen, da muss der User die Maus nicht anfassen.
Gruß Rainer
Doch ab dem 3ten Zeichen springt der Cursor an den Anfang der Textbox.
Wie wärs mit der MaskedTextBox?
Grüße, JasonDelife.
Hi,
Doch ab dem 3ten Zeichen springt der Cursor an den Anfang der
Textbox.
ach so. Sorry ich ahbe hier gerade kein .NET installiert, in VB6 sieht’s so aus:
Option Explicit
Private Sub Text1\_Change()
If Len(Text1.Text) = 3 Then
Text1.Text = Text1.Text & "."
Text1.SelStart = 4
ElseIf Len(Text1.Text) \> 15 Then
Text1.Text = Left(Text1.Text, 15)
Text1.SelStart = 15
End If
End Sub
Das muss in .NET fast genau so aussehen.
Gruß Rainer
Hey Danke super! Das wars
Leider macht er den Punkt nur einmal. Sollte ihn aber 3 mal schreiben…
Vielen Dank für deine Hilfe
Ps. In .NET siehts so aus:
If Len(textbox.Text) = 3 Then
textbox.Text = textbox.Text & „.“
textbox.Select(4, textbox.Text.Length)
Hi,
Hey Danke super! Das wars
Leider macht er den Punkt nur einmal. Sollte ihn aber 3 mal
schreiben…
ach so,so hatte ich das nicht verstanden. 
Option Explicit
Private Sub Text1\_Change()
If Len(Text1.Text) \>= 15 Then
Text1.Text = Left(Text1.Text, 15)
Text1.SelStart = Len(Text1.Text)
Exit Sub
ElseIf (Len(Text1.Text) + 1) Mod 4 = 0 Then
Text1.Text = Text1.Text & "."
Text1.SelStart = Len(Text1.Text)
End If
End Sub
Nach .NET umschreiben musst Du wieder selbst, aber das hat ja geklappt.
Gruß Rainer
Perfekt! Vielen Vielen Dank!
Einzig das Text1.Text = Left(Text1.Text, 15) bekomm ich noch nicht ins .NET.(Also das Left(), obwohl auch .NET left kennt) Doch das werd ich schon irgendwie hinkriegen xD
Schönen Abend und nochmals Vielen Dank
Hi,
Einzig das Text1.Text = Left(Text1.Text, 15) bekomm ich noch
nicht ins .NET.(Also das Left(), obwohl auch .NET left kennt)
Doch das werd ich schon irgendwie hinkriegen xD
das können wir ja oben bei TranceEnergy abschreiben. 
TextBox1.Text = TextBox1.Text.Substring(0, 15)
Gruß Rainer
[Tippfehler korrigiert]
Komplett
Hallo,
noch mal den Code komplett, hier habe ich die richtige Entwicklungsumgebung zum Testen. 
Public Class Form1
Private Sub TextBox1\_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text.Length \>= 15 Then
TextBox1.Text = TextBox1.Text.Substring(0, 15)
TextBox1.SelectionStart = TextBox1.Text.Length
Exit Sub
End If
If (TextBox1.Text.Length + 1) Mod 4 = 0 Then
TextBox1.Text = TextBox1.Text & "."
TextBox1.SelectionStart = TextBox1.Text.Length
End If
End Sub
End Class
Gruß Rainer