Principales respuestas
Cancelar Login sin validar usuario

Pregunta
-
Buen día señores. Pues eso, resulta que tengo un formulario de login, el cual "trabaja bien" hasta que me di cuenta de un problemita: Tengo, obviamente dos textbox, (usuario y contraseña), si verifica en la BD el usuario y si existe, permite pasar al textbox de la contraseña, aquí no hay problema. El problema es que si quiero cancelar, antes de verificar usuario, no me lo permite, hasta que ingrese un usuario válido. Sé que esto es porque la búsqueda la puse en el evento LostFocus del textbox usuario. Ya intenté cambiando de evento, pero ninguno me funciona. La pregunta concreta sería, entonces:
En qué evento o momento debo colocar la función de ir a buscar en BD el usuario, si quiero poder cancelar antes de ingresar un usuario???
Espero se entienda la pregunta...
Saludos y gracias.
Ing. José Elías Pelayo
Respuestas
-
Partiendo de eso entonces lo que puedes hacer es verificar si btncancelar fue el control al que se le dio el foco cuando se salió del textbox, y si es así no hacer la validación, debido a que lostfocus se ejecuta después de que otro control ya recibió el foco entonces podrás saber que control seleccionaste después de ubicarte txtusuario
Private Sub txtusuario_LostFocus(sender As Object, e As EventArgs) Handles txtusuario.LostFocus Try If btncancelar.Focused Then Return End 'se regresará antes de validar y entonces no le devolverá el foco al txtusuario
- Marcado como respuesta eliaspelayo jueves, 28 de febrero de 2019 15:41
Todas las respuestas
-
Hola eliaspelayo
"El problema es que si quiero cancelar, antes de verificar usuario, no me lo permite," que quieres decir con que no te lo permite? regresas el puntero al control del que perdió el foco?, lo que me imagino es que llegas a txtUser y entonces quieres dar cancelar (me imagino un boton cancelar) pero cuando pierde el foco entonces valida que el usuario no existe y haces que se regrese al control??? es así?, también podrías poner el código eso nos ayudaría a entenderte mejor.
- Propuesto como respuesta Pedro AlfaroModerator martes, 26 de febrero de 2019 22:30
-
Que tal, gracias por responder. Y sí es exactamente lo que sucede. Anexo código:
Private Sub btncancelar_Click(sender As Object, e As EventArgs) Handles btncancelar.Click
Close()
End Sub------------------------------------
Private Sub txtusuario_LostFocus(sender As Object, e As EventArgs) Handles txtusuario.LostFocus
Try
Dim xuser = txtusuario.Text.ToString.Trim
pCargaDatos(tblcomboemp, dtacomboemp, cmdcomboemp, "select * from empleados where activo = 'S' and usuario= '" + xuser + "'", cntconexion, "Empleados")
Dim renglon As DataRow = tblcomboemp(0)
Dim zuser = renglon("usuario").ToString.Trim
If xuser = zuser Then
lblapepat.Text = renglon("apepat").ToString
lblclave_e.Text = renglon("clave_e").ToString
gnivel = renglon("nivel").ToString
'Label5.Text = renglon("apemat")
Label6.Text = renglon("clave").ToString
contras = renglon("clave").ToString
mnombre = renglon("nombre").trim.ToString
mapepat = renglon("apepat").trim.ToString
mapemat = renglon("apemat").trim.ToString
mclave_e = renglon("clave_e").ToString.Trim
Validacion.lblusuario.Text = "Validando: " + (mnombre + " " + mapepat).Trim
End If
Catch ex As Exception
MsgBox("No existe Usuario")
txtusuario.Focus()
End Try
End SubIng. José Elías Pelayo
-
Partiendo de eso entonces lo que puedes hacer es verificar si btncancelar fue el control al que se le dio el foco cuando se salió del textbox, y si es así no hacer la validación, debido a que lostfocus se ejecuta después de que otro control ya recibió el foco entonces podrás saber que control seleccionaste después de ubicarte txtusuario
Private Sub txtusuario_LostFocus(sender As Object, e As EventArgs) Handles txtusuario.LostFocus Try If btncancelar.Focused Then Return End 'se regresará antes de validar y entonces no le devolverá el foco al txtusuario
- Marcado como respuesta eliaspelayo jueves, 28 de febrero de 2019 15:41
-