Link to home
Start Free TrialLog in
Avatar of aerelorn
aerelorn

asked on

GotFocus

I couldn't get GotFocus() to work, so I tried going to the extreme and put the following code on my main form:

Private Sub Form_GotFocus()
 End
End Sub

However, the program never ends regardless of whether I load another form and switch back, or switch to another program.

Any ideas?
Avatar of ture
ture

aerelorn,

The form doesn't get focus if there are objects on it that can get the focus.

If you have a simple form with nothing at all on it and show that form, the event procedure will run.

Ture Magnusson
Karlstad, Sweden
From Help
"A form receives the focus only when all visible controls are disabled."

Therefore the form will not get this event as long as there are any controls on the form capable of getting the focus.
:o)
ASKER CERTIFIED SOLUTION
Avatar of Erick37
Erick37
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
:^)
One more thing to be pointed out , never use END within your application. END terminates the program without firing TERMINATE EVENT what this means is that the memory doesn't get released cauing memory leack. Always either unload them or find anohter way to release the resources.
Use a picture box and set its size & properties to match your form, then use the gotfocus event as you wish. Also you may want to set its tab index to 0.
Still, the last control with focus will only receive the GotFocus event.  If there is a textbox with focus on the picturebox, when reactivating the form, Text1_GotFocus is fired.
Couldnt you use the form_activate event to run code when the form is first activated and in a sense have the 'focus'?? Just a thought...

T
use Form_activate event instead of form_gotfocus to fire the end command
uhhh....is there an echo in here?