none
poner coma y letra pulsada RRS feed

  • Pregunta

  • Buenas tengo este codigo que lo que hace es 

    empiesa a escribir numeros ej 1 ahora pulses lo que pulse escribe una ,

    y lo que me gustaria es 

    empieso a escribir 1 y si pulso ej 0 me escribe , aparece asi 1, y me gustaria que apareciera asi 1,0 o la tecla que pulse 

    GRACIAS

    'OBLIGA PULSE LO QUE PULSE A QUE EL SEGUNDO CARACTERE SEA UNA ","
                If CType(sender, TextBox).Text.Trim().Length = 1 Then
                    If e.KeyChar <> "," And e.KeyChar <> Convert.ToChar(Keys.Back) Then
                        SendKeys.Send(",")
                        e.Handled = True
                    End If
                End If
                Dim textControl As TextBox = CType(sender, TextBox)
                If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> ","c Then
                    ' Si no es un carácter de control, un número o un punto no es válido
    
                    e.Handled = True
                    SendKeys.Send(",")
    
                ElseIf e.KeyChar = ","c AndAlso (textControl.SelectionStart <> 1 Or textControl.Text.IndexOf(","c) >= 1) Then
                    ' Si es un punto y es el primer carácter o existe otro no es válido
                    e.Handled = True
                End If
                'OBLIGA PULSE LO QUE PULSE A QUE EL SEGUNDO CARACTERE SEA UNA ","

    sábado, 24 de diciembre de 2016 9:52

Respuestas

  • Hola JETET,

    Podrías hacerlo validando la longitud del contenido, usando la propiedad Length.

    Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    
        Dim txt = CType(sender, TextBox)
    
        If CType(sender, TextBox).Text.Trim().Length = 1 Then
            If e.KeyChar <> "," And e.KeyChar <> Convert.ToChar(Keys.Back) Then
                txt.Text += ","
                txt.Select(txt.Text.Length, 0)
            End If
        End If
    
    End Sub

    Resultado : El primer textBox es para corroborar las teclas presionadas, y el segundo es dónde agrega la 'coma' automáticamente.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta JETET lunes, 26 de diciembre de 2016 0:15
    domingo, 25 de diciembre de 2016 6:48

Todas las respuestas

  • Hola JETET,

    Podrías hacerlo validando la longitud del contenido, usando la propiedad Length.

    Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    
        Dim txt = CType(sender, TextBox)
    
        If CType(sender, TextBox).Text.Trim().Length = 1 Then
            If e.KeyChar <> "," And e.KeyChar <> Convert.ToChar(Keys.Back) Then
                txt.Text += ","
                txt.Select(txt.Text.Length, 0)
            End If
        End If
    
    End Sub

    Resultado : El primer textBox es para corroborar las teclas presionadas, y el segundo es dónde agrega la 'coma' automáticamente.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta JETET lunes, 26 de diciembre de 2016 0:15
    domingo, 25 de diciembre de 2016 6:48
  • gracias por responder Joelpero y si presiono un 1 tendria que escribir 1.1

    domingo, 25 de diciembre de 2016 21:35