none
AYUDA ERROR DE CÓDIGO AL INTENTAR BORRAR UNA A UNA LAS LETRAS DE UN TEXBOX

    Pregunta

  • Buenas tardes y un cordial saludo mi pregunta es sobre este código que tengo

    CONTENEDORDERESULTADO.Text = CONTENEDORDERESULTADO.Text.Substring(0, CONTENEDORDERESULTADO.Text.Count() - 1)

    Lo que pasa es que si me funciona correctamente al querer borrar letra por letra pero cuando llegó al final de haber borrado todas las letras del textbox me sale lo siguiente..

    mi pregunta es como puedo solucionar este pequeño error... de antemano muchas gracias

    un saludo desde México

    sábado, 31 de diciembre de 2016 22:44

Respuestas

  • Hola Christian Medellin,

    Tienes que validar que la longitud del texto no sea igual a 0, puedes usar la propiedad Length.

    Podrías hacer :

    Dim txt As String = CONTENEDORDERESULTADO.Text
    
    If txt.Length > 0 Then 'Si es mayor a 0, es porque hay mínimo un caracter
        CONTENEDORDERESULTADO.Text = txt.Substring(0, txt.Length - 1)
    Else
        MessageBox.Show("No datos...")
    End If

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    sábado, 31 de diciembre de 2016 23:19
  • Christian Medellin,

    La información adicional indica que el valor del parámetro length no puede ser inferior a cero y eso es lo que sucede cuando restas una unidad cuando la longitud es cero. La solución es tan simple como validar previamente la longitud de la cadena:

    If CONTENEDORDERESULTADO.Text.Length >= 1 Then
    	CONTENEDORDERESULTADO.Text = CONTENEDORDERESULTADO.Text.Substring(0, 
    					CONTENEDORDERESULTADO.Text.Length - 1)
    End If


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 31 de diciembre de 2016 23:20
  • Gracias muchas gracias a los dos me funciono correctamente y que tengan una feliz años
    sábado, 31 de diciembre de 2016 23:25

Todas las respuestas

  • Hola Christian Medellin,

    Tienes que validar que la longitud del texto no sea igual a 0, puedes usar la propiedad Length.

    Podrías hacer :

    Dim txt As String = CONTENEDORDERESULTADO.Text
    
    If txt.Length > 0 Then 'Si es mayor a 0, es porque hay mínimo un caracter
        CONTENEDORDERESULTADO.Text = txt.Substring(0, txt.Length - 1)
    Else
        MessageBox.Show("No datos...")
    End If

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    sábado, 31 de diciembre de 2016 23:19
  • Christian Medellin,

    La información adicional indica que el valor del parámetro length no puede ser inferior a cero y eso es lo que sucede cuando restas una unidad cuando la longitud es cero. La solución es tan simple como validar previamente la longitud de la cadena:

    If CONTENEDORDERESULTADO.Text.Length >= 1 Then
    	CONTENEDORDERESULTADO.Text = CONTENEDORDERESULTADO.Text.Substring(0, 
    					CONTENEDORDERESULTADO.Text.Length - 1)
    End If


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 31 de diciembre de 2016 23:20
  • Gracias muchas gracias a los dos me funciono correctamente y que tengan una feliz años
    sábado, 31 de diciembre de 2016 23:25