geen 2 punten of komma's in textbox

Status
Niet open voor verdere reacties.

Doofenshmirt

Gebruiker
Lid geworden
3 nov 2011
Berichten
222
Hoi,

Heb deze code om een punt te veranderen naar een komma.

Code:
 Private Sub TextBox30_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox30.Validating
        TextBox30.Text = TextBox30.Text.Replace(".", ",")
        If TextBox30.Text.Contains(".") Or TextBox30.Text.Contains(",") Then
            GoTo test
        Else
            MsgBox(" Let op geen . of , gebruikt !")
        End If
test:
    End Sub

Het moet een komma worden ,dit gaat goed.

Maar soms komt het voor dat men 2 punten of 2 komma's in die textbox invult.

Dit mag niet.
Iemand een idee , het gaat om getallen.
 
Waarom gebruik je niet gewoon een MaskedTextBox?
 
[cpp]TextBox1.Text.Replace(".",",")[/cpp]

@edmoor: Dan heb je een limiet van tekens die je mag invoeren.
 
Dat is helemaal afhankelijk van het masker dat je gebruikt. Naast de meegeleverde maskers kun je ook eigen maskers gebruiken.
 
Dat klopt: Je mag zeggen hoeveel tekens er mogen worden ingevoerd. Maar je mag niet zeggen dat je onbeperkt mag invoeren. Bovendien krijg je zo'n underscore voor niet ingevoerde tekens.
 
Helemaal waar. Maar bij een veld waar je een getal in moet vullen lijkt me een bepaald maximum geen enkel probleem.
Die underscore staat inderdaad een beetje vreemd.
Daarnaast is onze discussie nog steeds geen antwoord op zijn eigenlijke vraag, net als mijn eerste reactie ;)

Een stukje code om de input van een gebruiker te controleren wil ik wel voor TS maken als hij laat weten wat een gebruiker wel en niet in die textbox mag invullen.
 
Hoi,

Ik ben nog even aan het zoeken geweest maar kan alleen maar voorbeelden vinden over 1 punt of 1 komma.


De gebruiker mag alleen cijfers invullen , maar in die cijfers mag maar 1 punt of 1 komma inzitten.

bv
1.025.000 mag niet (2 punten)
1025.000 mag wel deze punt wordt dan een komma gemaakt .

1,025,000 mag niet (2 komma's)
1025,000 mag wel

Het is natuulijk zo maar een voorbeeld want de cijfers zijn altijd anders.
 
In je voorbeeldje:
1,025,000 mag niet (2 komma's)
1025,000 mag wel

Mag 1,025000 dan ook?
En als ze op beide plekken staan, welke moet er dan blijven?
 
Laatst bewerkt:
Alleen 3?
Of mag dat ook 1 of 2 zijn?
 
Probeer het eens met deze 2 subs:

Code:
    Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
        Dim t_tekst As String, d_sep As Boolean, c_placed As Boolean, lgt As Integer

        If TextBox1.Text = "" Then Exit Sub

        d_sep = False
        lgt = Len(TextBox1.Text)
        t_tekst = vbNullString

        For i As Integer = 1 To lgt
            Select Case Mid(TextBox1.Text, i, 1)
                Case ".", ","
                    d_sep = True
                Case Else
                    If i >= lgt - 2 Then
                        If d_sep And Not c_placed Then
                            t_tekst = t_tekst & ","
                            c_placed = True
                        End If
                    End If
                    t_tekst = t_tekst & Mid(TextBox1.Text, i, 1)
            End Select
        Next

        If Not d_sep Then
            MsgBox(" Let op geen punt of komma gebruikt !")
        Else
            TextBox1.Text = t_tekst
        End If
    End Sub

   
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Dim a_chars As String = "0123456789.,", t_tekst As String, i As Integer
        For i = 1 To Len(TextBox1.Text)
            If InStr(a_chars, Mid(TextBox1.Text, i, 1)) = 0 Then
                MsgBox("Alleen cijfers, punt en komma")
            Else
                t_tekst = t_tekst & Mid(TextBox1.Text, i, 1)
            End If
        Next
        TextBox1.Text = t_tekst
        TextBox1.SelectionStart = i
    End Sub
 
Laatst bewerkt:
Ok, m'n eerste reactie was offtopic en heb ik hiermee dus goedgemaakt :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan