Problema con .SetFocus en VB6

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

0 Miembros y 2 Visitantes 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

cassiani


SERBice

porque no pruebas darle el foco desde el form_gotfocus (cuando el form recibe el foco, es luego de form_load).

gulabyte

Gracias por responder SERBice pero el problema ya está solucionado, cobein me sugirio la función form_activate, que viene a ser lo mismo, se activa cuando el form recibe el foco (o "se activa").

De todas formas gracias por responder  ;)

PD: cobein respondio en otro post (tema). Es que le di unas cuantas veces al botón de publicar y apareció dos veces en la lista.