|
| Joined: Dec 2003 Posts: 2 Junior Member | Junior Member Joined: Dec 2003 Posts: 2 | Hello, All:
Recently I have been annoyed by the following question very much. It will be highly appreciated if anyone could help me!
I want to refer to some properties or controls in another form while I don't want to declare too much public variables.
For example, in module1, I want to get hwnd of frmMain:
hwnd = frmMain.hwnd
Here is my question:
When call the properties or control outside a form through the form name,
1. the event Form_Load (or Form_Initialize) will also be triggered in some projects; 2. while in some other projects, Form_Load (or Form_Initialize) will not be triggered and I can call it just as a variable.
In which cases Form_Load will be triggered and in which not?
Please help me!!! Thank you very much! | | |
▼ Sponsored Links ▼
▲ Sponsored Links ▲
| | | Joined: Mar 2002 Posts: 1,273 DollarDNS Owner | DollarDNS Owner Joined: Mar 2002 Posts: 1,273 | When calling a public variable or property of a unloaded form:
1) That form's Form_Load event is called 2) The public variable or property is accessed
In that order. This always happens - and the form is not displayed. It won't be displayed until you call the form's show event or set the visible property to true. It is impossible to call those members of the form without first loading it.
Modules are the preferred choice. Modules are loaded when they are accessed and they stay loaded for the rest of that program's execution. | | | | Joined: Dec 2003 Posts: 2 Junior Member | Junior Member Joined: Dec 2003 Posts: 2 | Hello, SilentRage:
Thank you very much!
But the case I encountered is that:
'frmMain' has finished loading. In the course of running, I need to call another procedure and in this procedure I will access some properties of frmMain. 'frmMain' remains displayed and loaded. Anyway the Form_Load in frmMain is triggered again (but in some other similar projects will not). | | | | Joined: Mar 2002 Posts: 1,273 DollarDNS Owner | DollarDNS Owner Joined: Mar 2002 Posts: 1,273 | Form_Load will only be triggered multiple times if they are explicitly called in the code, or if you are loading duplicate forms like if you declare a variable as that form and play with it, or if the form is unloaded at any point (user presses the 'X' or the Unload method is called on it). | | |
Forums41 Topics33,840 Posts68,858 Members2,176 | Most Online3,253 Jan 13th, 2020 | | | |
|