Changes

Jump to: navigation, search

Hiding and Showing Forms in Visual Basic

3,278 bytes added, 17:58, 19 July 2007
Writing Visual Basic Code to Display a Non-Modal Form
<pre>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
 
subForm.Show()
 
End Sub
</pre>
 
To test this code press F5 to compile and run the application. When it appears click on the button in the main form and the sub form will appear. You will notice, since this is a non-mocal form, that you can still interact with the main form while the sub-form is visible (i.e you can click on the button in the main form).
 
Close the running application.
 
== Writing Visual Basic Code to Display a Non-Modal Form ==
 
We will now modify the event procedure for the button to create a modal form. To do so we need to call the ''ShowDialog()'' method of the ''subForm''. Modify the ''Click'' event procedure of the ''mainForm'' button as follows:
 
<pre>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
 
subForm.ShowDialog()
 
End Sub
</pre>
 
Press F5 once again to build and run the application. Aftyer pressing the button in the main form to display the sub form you will find that the main form is inactive as long as the sub form is displayed. Until the sub form is dismissed this will remain the case.
 
Close the running application.
 
== Hiding Forms in Visual Basic ==
 
There are two ways to make a form disappear from the screen. One way is to ''Hide'' the form and the other is to ''Close'' the form. When a form is hidden, the form and all its properties and settings still exist in memory. In other words, the form still exists, it is just not visible. When an form is closed, the form is physically deleted from memory and will need to be completely recreated before it can be displayed again.
 
To hide a form it is necessary to call the ''Hide()'' method of the form to be hidden. Using our example, we will wire up the button on the ''subForm'' to close the form. Click on the tab for the second form (the ''subForm'') in your design and double click on the button control to display the ''Click'' event procedure.
 
One very important point to note here is that the button control is going to hide its own Form. In this case, the event procedure must reference ''Me'' instead of referencing ''subForm'' by name. With this in mind, modify the procedure as follows:
 
<pre>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
 
Me.Hide()
 
End Sub
</pre>
 
Press F5 to build and run the application. Click on the button in the main form to display the sub form. Now, when you press the button in the sub form, the form will be hidden.
 
== Closing Forms in Visual Basic ==
 
As mentioned in the previous section, in order to remove a form both from the display, and form memory, it is necessary to ''Close'' rather than ''Hide'' it. In Visual Studio double click, once again, the button in ''subForm'' to view the ''Click'' event procedure. Once again, because the button is in the form we are closing we need to use ''Me'' instead of ''subForm'' when calling the ''Close()'' method:
 
<pre>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
 
Me.Close()
 
End Sub
</pre>

Navigation menu