FoxPro/Visual FoxPro - tomar foco de un textbox

   
Vista:

tomar foco de un textbox

Publicado por gaston gaston_ernesto@hotmail.com (80 intervenciones) el 05/08/2011 21:01:56
Estimados/as, en el evento lostfocus de un textbox valido los datos ingresado y si los datos son incorrectos necesito volver a hacer foco sobre el control para ingresar los datos nuevamente.

Este es mi codigo y es dentro del if donde quiero validar.

***Evento lost focus del textbox

IF LEN(strtran((thisform.txtexpediente.Text)," ",""))<>14
MESSAGEBOX("Verifique en número de licencia","Validación",16)
thisform.txtexpediente.text.gotFocus ()
ENDIF


Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

tomar foco de un textbox

Publicado por xx (378 intervenciones) el 05/08/2011 23:25:21
Deberias hacerlo en el valid y no el lostfocus, cuando se produce una entrada invalida debe devolver falso y cuando es correcto debe devolver true es decir:
*THISFORM.CONTROL.VALID()

IF VALIDACION==.T.
*// pierde el foco
RETURN .T.
ENDIF

*// no pierde el foco
RETURN .F.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

tomar foco de un textbox

Publicado por Mauricio (1368 intervenciones) el 06/08/2011 16:59:56
***EventoValid del textbox
IF LEN(strtran((thisform.txtexpediente.Text)," ",""))<>14
MESSAGEBOX("Verifique en número de licencia","Validación",16)
return .f.
ELSE
* Seguir validando, si existen mas inconsistencias RETURN .F.
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

tomar foco de un textbox

Publicado por victor perez (278 intervenciones) el 06/08/2011 22:33:42
Amigo,

El evento que se usa para lo que deseas es el VALID. El LostFocus, el Valid no aceptan el evento .setfocus.

Por lo tanto en el Valid del textbox debes poner los siguiente:

IF LEN(strtran((thisform.txtexpediente.Text)," ",""))<>14
MESSAGEBOX("Verifique en número de licencia","Validación",16)
Return 0
ENDIF

De esta forma no avanzará hasta que se cumpla con la condicion.

Saludos,

Victor - Panama -
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

tomar foco de un textbox

Publicado por Raul Gonzalez (2 intervenciones) el 31/07/2014 15:39:20
tu lo puedes hacer con el evento valid pero en lostfocus tambien sirve solo debes agregar NODEFAULT asi:


IF LEN(strtran((thisform.txtexpediente.Text)," ",""))<>14
MESSAGEBOX("Verifique en número de licencia","Validación",16)
NODEFAULT
ENDIF

&&LISTO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar