Communicate Between Forms
In previous versions of .NET, you were responsible for tracking every open form. If you didn't, you might unwittingly strand a window, leaving it open but cut off from the rest of your application. VB 2005 restores the beloved approach of VB 6 developers, where there's always a default instance of your form ready, waiting, and accessible from anywhere else in your application.
Note
VB 2005 makes it easy for forms to interact, thanks to the new default instances. This feature is a real timesaverâand a potential stumbling block.
How do I do that?
To access the default instance of a form, just use its class
name. In other words, if you've created a form that's named
(unimaginatively) Form1
, you can
show its default instance like this:
Form1.Show( )
This automatically creates an instance of Form1
and then displays it. This instance of
Form1
is designated as the default
instance.
To communicate between forms, you simply add dedicated public
methods. For example, if Form1
needs to be able to refresh Form2
,
you could add a RefreshData( )
method to Form2
, like this:
Public Class Form2 Private Sub RefreshData( ) MessageBox.Show("I've been refreshed!") End Sub End Class
You could then call it like this:
Form2.RefreshData( )
This calls the RefreshData( )
method of the default instance of Form2
. The fact that RefreshData( )
is a method you added (not an
inherited method, like the Show( )
method) makes no difference in how you use it.
You can also get at the forms using the ...
Get Visual Basic 2005: A Developer's Notebook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.