Usuario
VALIDAR CONTRASEÑA MIENTRAS SE ESCRIBE

Pregunta
-
Les planteo la situacion tengo un textbox para ingresar una contraseña y label que indica si se escribieron numeros o no en la contraseña, estoy utilizando el siguiente codigo en el evento textchanged, para que asi se valide mientras digito la contraseña
For Each c As Char In contraseña.Text If (Char.IsNumber(c)) Then numeros.Visible = False Continue For Else numeros.Visible = True End If Next If contraseña.TextLength <= 8 Then contraseña.BackColor = Color.Red longitud.Visible = True Else contraseña.BackColor = Color.White longitud.Visible = False End If
La idea es que si se escribe un numero el label se oculte, de lo contrario este visible, pero el problema surge que si yo escribo un numero y luego vuelvo a escribir una letra, el label vuelve a aparecer ejemplo:
escribo aaa1 : label oculto
escribo 1234 : label oculto
escribo aa11: label oculto escribo aa11a : label vuelve a aparecer siendo que ya hay un numero en la cadena
Como podria solucionarlo, o que esta mal en mi codigo, toda ayuda es bienvenida, de antemano gracias.
Todas las respuestas
-
Hola El_Vena tu problema se resuelve fácil solo quita el Else del primer if que aparece y también quita el Numeros.visible = true porque con eso le estas diciendo si el valor ingresado en el textbox es un numero que me ponga el label invisible pero de lo contrario si es una letra que otra ves lo ponga visible por lo tanto cada ves que pongas una letra el codigo buelve analizar si fue un numero o letra y ejecuta una de las dos opciones
saludos y buenas noches
- Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de febrero de 2019 16:14
-
-
dentro del evento TextChanged pones el if por ejemplo
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged For Each ch As Char In TextBox1.Text.ToCharArray If IsNumeric(ch) Then Label1.Visible = False Else Label1.Visible = True End If Next End Sub
eso comprueba cada ves que ingreses una tecla si es un numero o letra y si es solo letras o solo numeros y ejecuta una de dos