Cita:
Iniciado por ivan185
esta impekable el codigo pero se cae al borrar el rut con la tecla suprimir en el tercer campo del rut se cae el software este es el error si me pueden ayudar a corregirlo
--Conversion from string "-" to type 'Integer' is not valid.
en esta linea del codigo
iNum = Mid(ElNumero, i, 1)
de todas maneras gracias.
Bueno, hay varias formas de evitar el error:
- Controlando la excepción en un bloque Try..Catch.. End Try
- Al detectar la pulsación de la tecla Supr eliminar los dos caracteres añadidos (guión y dígito verificador).
- ...
Pero teniendo en cuenta que la verificación del dígito es correcta, a mi me parece mas práctico que una vez calculado el dígito verificador, pasar el foco al siguiente control y para evitar que el usuario (cabezota él) se vuelva a posicionar en el TextBox y le dé a la tecla Supr, al tomar el foco limpiamos el TextBox.
Para ello modificamos este evento:
Código:
Private Sub TxtRut_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtRut.TextChanged
If TxtRut.TextLength = 8 Then
TxtRut.Text = ValidaRut(TxtRut.Text)
My.Computer.Keyboard.SendKeys("{tab}", True)
End If
End Sub
Y al tomar el foco el control:
Código:
Private Sub TxtRut_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtRut.GotFocus
TxtRut.Clear()
End Sub