vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Textbox Trennzeichen 
Autor: Gizmo2011
Datum: 29.10.12 11:00

Hallo Jungs,

warscheinlich ist es ein kleinigkeit aber stehe gerade auf dem schlauch,
Ich möchte das in einer Textbox nach jedem 5ten Zeichen automatisch ein - eingefügt wird.
So wie bei der Windows aktivierung.
Aber irgend wie komme ich gerade nicht dahinter habe es nun mit einer Select Case anweißung
versucht gibt aber natürlich nur fehler.

Kann mir jemand schnell helfen?

MFG

MFG Gizmo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Manfred X
Datum: 29.10.12 11:40

Hallo!

Übertrage den Wert der Textbox.Text-Eigenschaft (keine Datenbindung?)
in eine Variable des Typs System.text.Stringbuilder.
Dort gibt es eine Insert-Methode - zu nutzen z.B. in einer
Zählschleife für die Zeichen.
Oder Du nutzt (für Userinputs) eine Masked-Textbox mit einer
entsprechenden Maske.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Gizmo2011
Datum: 29.10.12 12:07

Hallo Manfred X,

genau auf das bin ich auch schon gestoßen mit der Masked Textbox aber in meinen Steuerelementen
kann ich diese nicht finden obwohl Sie ausgewählt ist(Hacken in der Toolbox)

Diese geschichte mit dem Stringbuilder habe ich nicht so ganz verstanden.

Kannst du mir vieleicht ein wenig helfen?

Gruß Gizmo

MFG Gizmo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Manfred X
Datum: 29.10.12 12:37

Hallo!

Wieso Du die Maskedtextboxnocht findest, kann ich nicht beurteilen.
Dieses Control steht normalerweise in der Toolbox unter "Allgemeine".

Hier eine Einfügefunktion für Zeichengruppentrennung.
    Public Function Gruppentrenner(ByVal text As String, ByVal länge As _
      Integer, _
                                   ByVal trennzeichen As Char) As String
 
        If länge < 1 Then Return text
        If String.IsNullOrEmpty(text) OrElse text.Length < länge Then Return text
 
        Dim stb As New System.Text.StringBuilder(text)
        Dim z As Integer = -1
 
        For i As Integer = stb.Length - 1 To 0 Step -1
            If (i + 1) Mod länge = 0 Then stb.Insert(i + 1, trennzeichen)
        Next i
        Return stb.ToString.Trim(trennzeichen)
    End Function
1. Parameter: die zu gliedernde Zeichenfolge
2. Parameter: die Länge der Gruppen
3. Parameter: das einzufügende Trennzeichen

Anwendung:
    Private Sub TextBox1_TextChanged(sender As System.Object, _
        e As System.EventArgs) Handles TextBox1.TextChanged
 
        Dim t As String = TextBox1.Text.Replace("-"c, "")
        TextBox1.Text = Gruppentrenner(t, 5, "-"c)
        TextBox1.SelectionStart = TextBox1.Text.Length
    End Sub


Beitrag wurde zuletzt am 29.10.12 um 12:49:17 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Gizmo2011
Datum: 29.10.12 12:56

Hey Vielen Dank,

aber wenn ich das ganze ins Textchange einfüge
txt1.Text = Gruppentrenner(txt1.Text, 5, "-")

dann pasiert garnichts

Ich verstehe es wirklich nicht mehr.

Wenn ich es jetzt dann nicht hinbekomme mache ich 5 seperate Textboxen

MFG Gizmo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Manfred X
Datum: 29.10.12 13:11

Hallo!

Schau Dir mal mein angefügtes Anwendungs-Beispiel an.
Der Trenner muss im Change-Event zunächst entfernt werden.
Die Parameter-Übergabe erfolgt in einer Stringvariable.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Gizmo2011
Datum: 29.10.12 13:24

Vielen Dank nochmal hierfür.

So und nun zum 2ten. wenn ich jetzt eine falsche eingabe gemacht hab kann ich alles entfernen
bis auf das Trennzeichen.

Ich glaub ich gebe es jetzt dann auf

MFG Gizmo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Manfred X
Datum: 29.10.12 13:50

Hallo!

Das Trennzeichen darfst Du nicht direkt entfernen.
Du kannst nur Deine Eingabe editieren. Die Trennzeichen
sollten - gemäß Deiner Anforderung - automatisch eingefügt
und positioniert werden. ???

Eventuell kannst Du noch die Position des Textcursors
zwischen-speichern.
       Private Sub TextBox1_TextChanged(sender As System.Object, _
        e As System.EventArgs) Handles TextBox1.TextChanged
 
        With TextBox1
            Dim cursorposition As Integer = .SelectionStart
            Dim textlength As Integer = .TextLength
            Dim t As String = TextBox1.Text.Replace("-"c, "")
            .Text = Gruppentrenner(t, 5, "-"c)
            If cursorposition > 0 AndAlso cursorposition < .TextLength _
                AndAlso .Text(cursorposition - 1) = "-" Then cursorposition += 1
            .SelectionStart = cursorposition
        End With
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox Trennzeichen 
Autor: Gizmo2011
Datum: 29.10.12 13:59

Juhu,

endlich ist das Thema durch dank eurer Hilfe.
Ich dachte schon ich muss komplett umdenken aber jetzt geht es perfekt

MFG Gizmo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel