Previous | Index | Next 

[PRB] The Load event of a form doesn't fire when you access its property or control from another form

In VB6, when you access a control located in a different form, a Load event raises in target form.
In VB.NET the Load event raises only when you call the Show method.

If it is essential to reproduce the same event sequence you have in VB6, then you must force a Load event by inserting a proper pragma just before accessing the control.
For example, if you access to caption property of FormCalled form from FormMain:

        ' Code in FormMain
        Private Sub cmd_ChangeCaption_Click()
            FormCalled.Caption = "Hello from FormMain"
        End Sub

in VB6, the Load event fires before setting of property. This isn't true in VB.NET, and you could retrieve unexpected behaviors (i.e. missing initialization of variables and control properties).
To reproduce the same sequence, you need to insert the following pragma:

        ' Code in FormMain
        Private Sub cmd_ChangeCaption_Click()
            '## InsertStatement Load6(FormCalled)
            FormCalled.Caption = "Hello from FormMain"
        End Sub

 

Previous | Index | Next