[Visual Basic] una sola coma en un textBox

Resuelto
kikou93 Mensajes publicados 438 Estado Miembro -  
kikou93 Mensajes publicados 438 Estado Miembro -
Hola a todos y a todas, solicito su ayuda para el siguiente tema:
quiero limitar el número de comas en un TextBox a 1.
es decir, si pongo una coma en un TextBox y trato de poner una segunda, no sucede nada
he encontrado el siguiente código:
 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If (e.KeyChar = ",") Then If (TextBox1.Text.Contains(",")) Then e.Handled = True
End Sub

en:
https://forums.commentcamarche.net/forum/affich-22991758-vb-net-virgule-textbox
pero nada cambia (aunque quien publicó el código lo marcó como resuelto)
ya he encontrado cómo prohibir la entrada de letras y otros símbolos, y también cómo reemplazar el punto por una coma

Aquí está el Código:
Dim desNuméro() As Char = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Not desNuméro.Contains(e.KeyChar) And Not Asc(e.KeyChar) = 8 Then
e.Handled = True
End If
If e.KeyChar = "."c Or e.KeyChar = ","c Then
e.Handled = True
TextBox1.AppendText(",")
End If
End Sub

me falta solo eso
ayúdenme por favor y gracias de antemano

Configuración: Windows / Chrome 49.0.2623.112

--
¡Cómo funciona es genial!
      1000 Gracias amigos

2 respuestas

  1. NHenry Mensajes publicados 15235 Fecha de registro   Estado Moderador Última intervención   387
     
    Si TextBox.Text.Contains(",") entonces 'rechazar la entrada del punto/coma.
    De lo contrario, intenta también hacer un copiar/pegar en tu textbox, para ver si sigue funcionando. (tipo "jhdk51258...54fg" -> Textbox)

    --
    Intervengo principalmente en VB6 y VB.NET, con un poco de C#, pero la moderación me lleva a menudo a otros lenguajes.
    En VB.NET, recuerda activar "Option Explicit" y "Option Strict"
    0
  2. Mosca
     
    Buenas tardes

    Prueba con esto

     Dim desNuméro() As Char = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

    If Not desNuméro.Contains(e.KeyChar) And Not Asc(e.KeyChar) = 8 Then
    e.Handled = True
    End If
    If e.KeyChar = "."c Or e.KeyChar = ","c Then
    e.Handled = True
    If Not (TextBox1.Text.Contains(",")) Then TextBox1.AppendText(",")
    End If

    End Sub
    0
    1. kikou93 Mensajes publicados 438 Estado Miembro 1
       
      gracias a NHenry y Mosca por haberme respondido, la solución de Mosca funciona muy bien, gracias de nuevo, les estoy muy agradecido.
      0