-
February 21st, 2007, 04:28 AM
#1
VB.NET 2003 Forms : How do I work with MDI forms?
Q: What is an MDI Form?
A: Multiple-document interface (MDI) applications allow you to display multiple documents at the same time, with each document displayed in its own window.
Q: How do I create an MDI Parent form?
A: In the Properties window, set the IsMDIContainer property of the form to True.
Q: How do I create an MDI child Form?
A: Add a new Windows Form (so that you have 2 forms). In the MDI Form's Form_Load event, type the following :
Code:
Dim MDIChildForm As New Form2()
MDIChildForm.MdiParent = Me
MDIChildForm.Show()
Q: How do I change the Background color of an MDI Parent form?
A: Eventhough there is a BackColor property in the Properties Window, it will not work as expected. Select the BackColor property in the Properties Window, and set it to a different color. You will not see the color of the MDI Form change in the Form designer.
You have to type the following code into the MDI Form's Load event as well:
Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ctl As Control
Dim ctlMDI As MdiClient
' Loop through all of the form's controls looking
' for the control of type MdiClient.
For Each ctl In Me.Controls
Try
' Attempt to cast the control to type MdiClient.
ctlMDI = CType(ctl, MdiClient)
' Set the BackColor of the MdiClient control.
ctlMDI.BackColor = Me.BackColor
Catch exc As InvalidCastException
' Catch and ignore the error if casting failed.
End Try
Next
End Sub
Q: How do I add a Background picture to the MDI Parent form?
A: Simply set the BackgroundImage property of the MDI form, to the picture you want. The picture will be tiled, once run.
Q: How do I check if an MDI Child form already exists, so that we don't show the same form twice ?
A: Inside the method from which you want to check (possibly a Menu item click, or toolbar) type the following :
Code:
For Each f As Form In Me.MdiChildren
If f.Text = "Form2" Then
MessageBox.Show("It already exists!")
Exit Sub
End If
Next
Dim f2 As New Form2
f2.MdiParent = Me
f2.Show()
Q: How do I find out which MDI Child form is currently active?
A: Inside the particular event (in the MDI form) type the following :
Code:
Dim ActiveMDI As Form = Me.ActiveMdiChild
MessageBox.Show(ActiveMDI.Text)
Q: How do I arrange MDI Child windows?
A: Here are the Mdilayout options :
- Cascade
Inside the particular event of the control on the MDI Parent, type :
Code:
Me.LayoutMdi(MdiLayout.Cascade)
- Tile Horizontal
Inside the particular event of the control on the MDI Parent, type :
Code:
Me.LayoutMdi(MdiLayout.TileHorizontal)
- Tile Vertical
Inside the particular event of the control on the MDI Parent, type :
Code:
Me.LayoutMdi(MdiLayout.TileVertical)
- Arrange Icons
Inside the particular event of the control on the MDI Parent, type :
Code:
Me.LayoutMdi(MdiLayout.ArrangeIcons)
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|