none
Usar el TextInfo de vb.net RRS feed

  • Pregunta

  • Buenas tardes estimados, esperando me puedan ayudar con el siguiente caso, tengo un form en un proyecto en donde tengo un control Textbox al cual le he puesto en el evento textchanged el siguiente codigo:

    Private Sub txtcliente_TextChanged(sender As Object, e As EventArgs) Handles txtcliente.TextChanged
            Me.txtcliente.Text = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Me.txtcliente.Text)
            Me.txtcliente.SelectionStart = Me.txtcliente.Text.Length
        End Sub

    Con el objetivo de que me ponga la primera letra de cada palabra en mayuscula y hasta ahi todo funciona muy bien, pero el problema lo tengo cuando selecciono un registro ya guardado de mi lista para editarlo al dar clip en la lista cargo los controles con los datos seleccionados y si quiero editar algo en txtcliente, al escribir cualquier caracter me pone el focus al fina del textbox y si quito este codigo 

    Me.txtcliente.SelectionStart = Me.txtcliente.Text.Length

    que es el causante , no me funciona el Totitlecase,

    si alguien me puede ayuar, se lo agradesería.

    lunes, 14 de octubre de 2019 21:07

Todas las respuestas

  • Puedes guardar la posición del cursor y recuperarla de esta forma:

        Private Sub TxtCliente_TextChanged(sender As Object, e As EventArgs) Handles txtCliente.TextChanged

            Dim Pos As Integer = txtCliente.SelectionStart
            Me.txtCliente.Text = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Me.txtCliente.Text)
            Me.txtCliente.SelectionStart = Pos 

        End Sub


    Saludos, Javier J

    • Propuesto como respuesta Pablo Rubio martes, 15 de octubre de 2019 14:48
    martes, 15 de octubre de 2019 9:49