FoxPro/Visual FoxPro - setfocus()

 
Vista:

setfocus()

Publicado por eduardo (16 intervenciones) el 05/08/2013 19:24:06
Hola que tal, queria sacarme una duda que jamas me ocurrio en VFP 6. En el evento click de un commandbutton no me ejecuta el comando setfocus(), me muestra el error que no se puede llamar un setfocus en un evento valid, rangelow, when, etc. Es un boton que simplemente limpiar todos los textbox y toma el foco en el primer textbox. Es un programa en donde inicio sesion mediante el ingreso del dni y llama a otro formulario con varios commandbutton (formulario menu) que a su vez cada command llama a otros formularios. Por ej. uno de los command dice "alta de alumnos" se hace click ahi y llama a un formulario para dar altas, todos los form estan en modal (windowtype). Ya probe con el windowtype en cero y no pasa nada porque supuse que eso seria el problema pero sin embargo el problema persiste, si a alguien ya le sucedio esto y lo soluciono le agredeciria que me dijeran como lo solucionaron. Desde ya muchas gracias, saludos. Eduardo.
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
sin imagen de perfil

setfocus()

Publicado por neo (1604 intervenciones) el 05/08/2013 20:17:46
Muy probablemente estés llamando al evento valid() de algun objeto, por ejemplo command, text, combo, o cualquier otro y puede que desde ahi te envíe el error. Para eso siempre existe la opcion return + (el objeto donde desees retornar el enfoque.

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

setfocus()

Publicado por eduardo (16 intervenciones) el 05/08/2013 23:18:44
Gracias por contestar. El error se dispara cuando hago clic en ese boton osea se dispara en el evento click, y ya probe poniento "return thisform.text1" en vez de setfocus() y no se coloca el cursor en el textbox.
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

setfocus()

Publicado por Antonio Nuñez (1 intervención) el 18/12/2015 18:26:31
SImplemente una solucion elegante , Gracias.
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

setfocus()

Publicado por Fidel (558 intervenciones) el 06/08/2013 01:09:55
Lo que comentas ocurre cuando llamas a un formulario desde un evento Valid. Aún cuando llames a una rutina que a su vez llama a un formulario, el evento Valid se resolverá despúes que termine la rutina convocada y si llama a un form, después de Load, Init, Activate.
Si no entiendo mal, debes validar el dni y dejar que corra hacia el LostFocus, desde donde puedes llamar al formulario sin conflictos. Si el dni no es válido en el Valid, tendrás un RETURN 0, para que no llame al formulario. Y también una previsión para el caso en que el textbox esté vacío (salida).
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

setfocus()

Publicado por eduardo (16 intervenciones) el 07/08/2013 03:39:36
Hola Fidel gracias por contestar. Tenes razon lo que decis, desde el valid del formulario de inicio de sesion llamo a otro formulario menu que a su vez llaman a otros formularios segun el boton que presione. Cambie el codigo que estaba en el valid del formulario de inicio de sesion y lo coloque en el lostfocus y ya no me tira ese error, gracias por compartir la solucion, saludos. Eduardo.
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