Problema con .SetFocus en VB6

Iniciado por gulabyte, 20 Junio 2008, 21:10 PM

0 Miembros y 1 Visitante están viendo este tema.

gulabyte


El problema es que quiero que cuando el programa abra un pequeño form para insertar una contraseña, el cursor (el foco) se instale en el textbox para insertar el pass.

He intentado poniendo txtPass.SetFocus en el Form_load y me salta "llamada a procedimientos o argumentos no válidos".
Se me ocurre que podría ser porque el textbox o el form en sí no está cargado aún y no se puede aplicar el SetFocus, es decir que das la orden de establecer foco a un objeto que todavía no se ha creado y que se creará cuando finalize el form_load.
Quiero decir que podría ser porque está antes de las lineas de crear el form, el textbox y eso, aunque no se vea, claro. Algo así:

Private Sub Form_load()
     txtPass.SetFocus
     [lineas que no se ven y que son las que crean el form o los objetos en dicho form]
End Sub

He intentado con la propiedad Tab en el Form poniendola a 1 o a 0 pero nada, y el default tampoco se puede poner aunque lo tengo en un command, para que introduzca el pass al darle al enter.

La idea es simplificar el trabajo haciendo que el cursor se ponga en el textbox para así escribir directamente la clave (sin llevar el cursor con el ratón) y luego al darle al enter que siga a delante.

Se me ocurre insertar un timer en el form_load con unos milisegundos y después llamar al setfocus desde el timer aunque sería un poco chapuza no??

Que alguien me ayude a solucionar esta chorradilla!!

benga foro.fos

cobein

Private Sub Form_Activate()
Text1.SetFocus
End Sub
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

gulabyte


Exacto !! Gracias por la respuesta Cobein. Rápida, sencilla y eficaz.

Me ha puesto el cursor en el textbox a la primera, y se puede escribir.

Me pregunto si será por eso de que cuando ejecutas el form_load() todavía no se han cargado los objetos y el form_activate se inicia cuando ya están todos los objetos (cmd, txtbox, combo, ...) cargados.

De ahora en adelante usaré el form_activate si no es en algún caso especial que quiera usar el form_load ahora que entiendo más o menos como va el asunto.

Muy interesante, de nuevo, gracias.

Salu10 !!