473,386 Members | 1,758 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Multiple MDI Child Icons and Control Boxes Why??

Siv
Hi,
I have an MDI application that uses a generic "ShowPage" routine in a module that is called when I want to display a child form. The basic idea is that in the module I have declared each form as follows:

Friend F0 As frmMain
Friend F1 As frmStart
Friend F2 As frmSearch
Then in my ShowPage routine (which is passed a string "pageToShow" which is the name of the form I wish to open), I first check to see if we already have an instance of the form open:

For Each frm As Form In F0.MdiChildren
If frm.Name = pageToShow Then
frm.BringToFront()
Exit Function
End If
Next

If the form isn't already open the code carries on past the above and opens a new instance of the form:

Select Case pageToShow

Case "frmStart"
F1 = New frmStart
F1.MdiParent = F0
F1.Show()
Case "frmSearch"
F2 = New frmSearch
F2.MdiParent = F0
F2.Show()
F2.Activate()
F2.WindowState = FormWindowState.Maximized

Etc ..

I usually have a button at the bottom of each form that allows the user to close it and return to the start page (this is an MDI child form that is never closed whilst the app is running as it has a series of button that access all the other forms on it.

In the click event of the individual forms I have the following:

Me.Close()
F1.Activate()

(F1 being the Start form).

Now the problem. Up to now I have had no problem with this method of opening and closing forms. Today I added a new form to the set and configured it like all the others. The problem is that when I close this particular form and then re-open another form, its icon stays in the menu bar along with the form just being opened and at the right hand end of the menu bar I am getting multiple sets of min,max/restore,close buttons. The more time I return to the Start Menu and open forms the more of these additional control boxes appear almost filling the bar. Clicking these controls has no effect, or clicking the control menus at the left hand end underneath the form icons doesn't do anything. It's as if these icons and controls are now lost from their form.

Does anyone know why this one form could have caused this behaviour?, I have checked the form and compared all its non-default properties with the ones that don't cause this behaviour and they all have the same settings.

One thing I have also noticed is that when I return to the Start form, the icon is usually the icon from the last form opened not the start form's own icon.

Siv
Martley, Near Worcester, UK.

Nov 21 '05 #1
7 3074
Nak
Hi Siv,

I've tried replicating your issue by making an MDI parent and 2
children. In the MDI parent I have added a menu with 2 options, this is the
code that I have put in the form,

Private Function showForm(ByVal iName As String) As Boolean
Dim frm As Form
For Each frm In Me.MdiChildren
If (frm.Name = iName) Then
frm.BringToFront()
Return (True)
End If
Next
End Function

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
If (Not (showForm("Form2"))) Then
Dim pFrmForm1 As New Form2()
pFrmForm1.Name = "Form2"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
If (Not (showForm("Form3"))) Then
Dim pFrmForm1 As New Form3()
pFrmForm1.Name = "Form3"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

When either menu item is clicked the form is either created (if showform
returns false) or brought to the front. No problems have occured which make
me think that you might have some code elsewhere causing the issue, are you
putting anything into the Closing events of the children? I know I
experienced a bug once with relation to the MDI child list in the menu but I
think this one can be resolved. If you can post your code that replicates
this then please do, I'll take a look at it, other than that I think you
need to check your code.

Nick.

"Siv" <ms**********@removeme.sivill.com> wrote in message
news:eV****************@tk2msftngp13.phx.gbl...
Hi,
I have an MDI application that uses a generic "ShowPage" routine in a module
that is called when I want to display a child form. The basic idea is that
in the module I have declared each form as follows:

Friend F0 As frmMain
Friend F1 As frmStart
Friend F2 As frmSearch
Then in my ShowPage routine (which is passed a string "pageToShow" which is
the name of the form I wish to open), I first check to see if we already
have an instance of the form open:
For Each frm As Form In F0.MdiChildren
If frm.Name = pageToShow Then
frm.BringToFront()
Exit Function
End If
Next
If the form isn't already open the code carries on past the above and opens
a new instance of the form:

Select Case pageToShow

Case "frmStart"
F1 = New frmStart
F1.MdiParent = F0
F1.Show()
Case "frmSearch"
F2 = New frmSearch
F2.MdiParent = F0
F2.Show()
F2.Activate()
F2.WindowState = FormWindowState.Maximized
Etc ..
I usually have a button at the bottom of each form that allows the user to
close it and return to the start page (this is an MDI child form that is
never closed whilst the app is running as it has a series of button that
access all the other forms on it.
In the click event of the individual forms I have the following:
Me.Close()
F1.Activate()
(F1 being the Start form).
Now the problem. Up to now I have had no problem with this method of
opening and closing forms. Today I added a new form to the set and
configured it like all the others. The problem is that when I close this
particular form and then re-open another form, its icon stays in the menu
bar along with the form just being opened and at the right hand end of the
menu bar I am getting multiple sets of min,max/restore,close buttons. The
more time I return to the Start Menu and open forms the more of these
additional control boxes appear almost filling the bar. Clicking these
controls has no effect, or clicking the control menus at the left hand end
underneath the form icons doesn't do anything. It's as if these icons and
controls are now lost from their form.
Does anyone know why this one form could have caused this behaviour?, I have
checked the form and compared all its non-default properties with the ones
that don't cause this behaviour and they all have the same settings.
One thing I have also noticed is that when I return to the Start form, the
icon is usually the icon from the last form opened not the start form's own
icon.
Siv
Martley, Near Worcester, UK.
Nov 21 '05 #2
Siv
Nak,

I only do the me.close and f1.activate calls. the forms don't do anything
else as far as I can remember. I'll have a hunt through the forms own
events and see if I can see anything being done and report back.

Whilst waiting for a reply to my plea for help, I tried changing the Start
Form so that it doesn't have a control box, min or max buttons.

In this instance when it opens it does initially have a control box though
its close button is disabled. When I click one of its buttons to call up
another form and then close that and come back, the Start form now doesn't
display a control box or a sytem menu and icon and in fact my problem with
the new form goes away, I can call it up and exit it and I don't get the
multiple Icons and control boxes appearing on oipening the same form or any
of the others.

It feels to me like there is a corruption in the problem form or the start
form in relation to its system menu.

One thing that might be relevant, I had put a bit of code in the resize
event of the start form that stops the user resizing it:

Private Sub frmStart_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Resize
Me.WindowState = FormWindowState.Maximized
End Sub

Basically I was trying to stop the user from restoring or minimising the
start form and thus thinking they had no way to navigate around the app
(there are menus on the main MDI parent that will allow them to select all
the pages but some users just panic if there are no buttons on screen).
Could it be that as the MDI parent switches between the selected form and
the start form a resize occurs and this triggers some sort of cascade in the
frmStart_Resize event?? that interferes with the display of the child form's
icon and control boxes??

Siv,
Martley, Near Worcester. UK


"Nak" <a@a.com> wrote in message
news:Ot****************@TK2MSFTNGP14.phx.gbl...
Hi Siv,

I've tried replicating your issue by making an MDI parent and 2
children. In the MDI parent I have added a menu with 2 options, this is
the code that I have put in the form,

Private Function showForm(ByVal iName As String) As Boolean
Dim frm As Form
For Each frm In Me.MdiChildren
If (frm.Name = iName) Then
frm.BringToFront()
Return (True)
End If
Next
End Function

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
If (Not (showForm("Form2"))) Then
Dim pFrmForm1 As New Form2()
pFrmForm1.Name = "Form2"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
If (Not (showForm("Form3"))) Then
Dim pFrmForm1 As New Form3()
pFrmForm1.Name = "Form3"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

When either menu item is clicked the form is either created (if
showform returns false) or brought to the front. No problems have occured
which make me think that you might have some code elsewhere causing the
issue, are you putting anything into the Closing events of the children?
I know I experienced a bug once with relation to the MDI child list in the
menu but I think this one can be resolved. If you can post your code that
replicates this then please do, I'll take a look at it, other than that I
think you need to check your code.

Nick.

"Siv" <ms**********@removeme.sivill.com> wrote in message
news:eV****************@tk2msftngp13.phx.gbl...
Hi,
I have an MDI application that uses a generic "ShowPage" routine in a
module that is called when I want to display a child form. The basic idea
is that in the module I have declared each form as follows:

Friend F0 As frmMain
Friend F1 As frmStart
Friend F2 As frmSearch
Then in my ShowPage routine (which is passed a string "pageToShow" which
is the name of the form I wish to open), I first check to see if we
already have an instance of the form open:
For Each frm As Form In F0.MdiChildren
If frm.Name = pageToShow Then
frm.BringToFront()
Exit Function
End If
Next
If the form isn't already open the code carries on past the above and
opens a new instance of the form:

Select Case pageToShow

Case "frmStart"
F1 = New frmStart
F1.MdiParent = F0
F1.Show()
Case "frmSearch"
F2 = New frmSearch
F2.MdiParent = F0
F2.Show()
F2.Activate()
F2.WindowState = FormWindowState.Maximized
Etc ..
I usually have a button at the bottom of each form that allows the user to
close it and return to the start page (this is an MDI child form that is
never closed whilst the app is running as it has a series of button that
access all the other forms on it.
In the click event of the individual forms I have the following:
Me.Close()
F1.Activate()
(F1 being the Start form).
Now the problem. Up to now I have had no problem with this method of
opening and closing forms. Today I added a new form to the set and
configured it like all the others. The problem is that when I close this
particular form and then re-open another form, its icon stays in the menu
bar along with the form just being opened and at the right hand end of the
menu bar I am getting multiple sets of min,max/restore,close buttons. The
more time I return to the Start Menu and open forms the more of these
additional control boxes appear almost filling the bar. Clicking these
controls has no effect, or clicking the control menus at the left hand end
underneath the form icons doesn't do anything. It's as if these icons and
controls are now lost from their form.
Does anyone know why this one form could have caused this behaviour?, I
have checked the form and compared all its non-default properties with the
ones that don't cause this behaviour and they all have the same settings.
One thing I have also noticed is that when I return to the Start form, the
icon is usually the icon from the last form opened not the start form's
own icon.
Siv
Martley, Near Worcester, UK.

Nov 21 '05 #3
Siv
Nak,
I checked, all the other forms don't do anything in any of their closing
events.

--
Siv
Martley, Near Worcester, UK.
"Nak" <a@a.com> wrote in message
news:Ot****************@TK2MSFTNGP14.phx.gbl...
Hi Siv,

I've tried replicating your issue by making an MDI parent and 2
children. In the MDI parent I have added a menu with 2 options, this is
the code that I have put in the form,

Private Function showForm(ByVal iName As String) As Boolean
Dim frm As Form
For Each frm In Me.MdiChildren
If (frm.Name = iName) Then
frm.BringToFront()
Return (True)
End If
Next
End Function

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
If (Not (showForm("Form2"))) Then
Dim pFrmForm1 As New Form2()
pFrmForm1.Name = "Form2"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
If (Not (showForm("Form3"))) Then
Dim pFrmForm1 As New Form3()
pFrmForm1.Name = "Form3"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

When either menu item is clicked the form is either created (if
showform returns false) or brought to the front. No problems have occured
which make me think that you might have some code elsewhere causing the
issue, are you putting anything into the Closing events of the children?
I know I experienced a bug once with relation to the MDI child list in the
menu but I think this one can be resolved. If you can post your code that
replicates this then please do, I'll take a look at it, other than that I
think you need to check your code.

Nick.

"Siv" <ms**********@removeme.sivill.com> wrote in message
news:eV****************@tk2msftngp13.phx.gbl...
Hi,
I have an MDI application that uses a generic "ShowPage" routine in a
module that is called when I want to display a child form. The basic idea
is that in the module I have declared each form as follows:

Friend F0 As frmMain
Friend F1 As frmStart
Friend F2 As frmSearch
Then in my ShowPage routine (which is passed a string "pageToShow" which
is the name of the form I wish to open), I first check to see if we
already have an instance of the form open:
For Each frm As Form In F0.MdiChildren
If frm.Name = pageToShow Then
frm.BringToFront()
Exit Function
End If
Next
If the form isn't already open the code carries on past the above and
opens a new instance of the form:

Select Case pageToShow

Case "frmStart"
F1 = New frmStart
F1.MdiParent = F0
F1.Show()
Case "frmSearch"
F2 = New frmSearch
F2.MdiParent = F0
F2.Show()
F2.Activate()
F2.WindowState = FormWindowState.Maximized
Etc ..
I usually have a button at the bottom of each form that allows the user to
close it and return to the start page (this is an MDI child form that is
never closed whilst the app is running as it has a series of button that
access all the other forms on it.
In the click event of the individual forms I have the following:
Me.Close()
F1.Activate()
(F1 being the Start form).
Now the problem. Up to now I have had no problem with this method of
opening and closing forms. Today I added a new form to the set and
configured it like all the others. The problem is that when I close this
particular form and then re-open another form, its icon stays in the menu
bar along with the form just being opened and at the right hand end of the
menu bar I am getting multiple sets of min,max/restore,close buttons. The
more time I return to the Start Menu and open forms the more of these
additional control boxes appear almost filling the bar. Clicking these
controls has no effect, or clicking the control menus at the left hand end
underneath the form icons doesn't do anything. It's as if these icons and
controls are now lost from their form.
Does anyone know why this one form could have caused this behaviour?, I
have checked the form and compared all its non-default properties with the
ones that don't cause this behaviour and they all have the same settings.
One thing I have also noticed is that when I return to the Start form, the
icon is usually the icon from the last form opened not the start form's
own icon.
Siv
Martley, Near Worcester, UK.

Nov 21 '05 #4
Siv
Nak,
It looks to me like the resize event code was to blame. I have removed that
and put the Start form back to how it was (with control box and max button
but no Min button) and it works fine.
What I still don't get is why the one form that was causing me a problem
kept creating multiple control boxes and icons yet the others didn't do it?
Siv

--
Siv
Martley, Near Worcester, UK.
"Nak" <a@a.com> wrote in message
news:Ot****************@TK2MSFTNGP14.phx.gbl...
Hi Siv,

I've tried replicating your issue by making an MDI parent and 2
children. In the MDI parent I have added a menu with 2 options, this is
the code that I have put in the form,

Private Function showForm(ByVal iName As String) As Boolean
Dim frm As Form
For Each frm In Me.MdiChildren
If (frm.Name = iName) Then
frm.BringToFront()
Return (True)
End If
Next
End Function

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
If (Not (showForm("Form2"))) Then
Dim pFrmForm1 As New Form2()
pFrmForm1.Name = "Form2"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
If (Not (showForm("Form3"))) Then
Dim pFrmForm1 As New Form3()
pFrmForm1.Name = "Form3"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

When either menu item is clicked the form is either created (if
showform returns false) or brought to the front. No problems have occured
which make me think that you might have some code elsewhere causing the
issue, are you putting anything into the Closing events of the children?
I know I experienced a bug once with relation to the MDI child list in the
menu but I think this one can be resolved. If you can post your code that
replicates this then please do, I'll take a look at it, other than that I
think you need to check your code.

Nick.

"Siv" <ms**********@removeme.sivill.com> wrote in message
news:eV****************@tk2msftngp13.phx.gbl...
Hi,
I have an MDI application that uses a generic "ShowPage" routine in a
module that is called when I want to display a child form. The basic idea
is that in the module I have declared each form as follows:

Friend F0 As frmMain
Friend F1 As frmStart
Friend F2 As frmSearch
Then in my ShowPage routine (which is passed a string "pageToShow" which
is the name of the form I wish to open), I first check to see if we
already have an instance of the form open:
For Each frm As Form In F0.MdiChildren
If frm.Name = pageToShow Then
frm.BringToFront()
Exit Function
End If
Next
If the form isn't already open the code carries on past the above and
opens a new instance of the form:

Select Case pageToShow

Case "frmStart"
F1 = New frmStart
F1.MdiParent = F0
F1.Show()
Case "frmSearch"
F2 = New frmSearch
F2.MdiParent = F0
F2.Show()
F2.Activate()
F2.WindowState = FormWindowState.Maximized
Etc ..
I usually have a button at the bottom of each form that allows the user to
close it and return to the start page (this is an MDI child form that is
never closed whilst the app is running as it has a series of button that
access all the other forms on it.
In the click event of the individual forms I have the following:
Me.Close()
F1.Activate()
(F1 being the Start form).
Now the problem. Up to now I have had no problem with this method of
opening and closing forms. Today I added a new form to the set and
configured it like all the others. The problem is that when I close this
particular form and then re-open another form, its icon stays in the menu
bar along with the form just being opened and at the right hand end of the
menu bar I am getting multiple sets of min,max/restore,close buttons. The
more time I return to the Start Menu and open forms the more of these
additional control boxes appear almost filling the bar. Clicking these
controls has no effect, or clicking the control menus at the left hand end
underneath the form icons doesn't do anything. It's as if these icons and
controls are now lost from their form.
Does anyone know why this one form could have caused this behaviour?, I
have checked the form and compared all its non-default properties with the
ones that don't cause this behaviour and they all have the same settings.
One thing I have also noticed is that when I return to the Start form, the
icon is usually the icon from the last form opened not the start form's
own icon.
Siv
Martley, Near Worcester, UK.

Nov 21 '05 #5
Nak
Hi there,

Sorry for the lengthy delay in my reply, I got a bit side tracked.
It looks to me like the resize event code was to blame. I have removed
that and put the Start form back to how it was (with control box and max
button but no Min button) and it works fine.
Aaah, well at least you have found the problem :-)
What I still don't get is why the one form that was causing me a problem
kept creating multiple control boxes and icons yet the others didn't do
it?
Siv


That's the wonders of programming I suppose, or sods law, what seems
comletely and utterly ilogical at the time turns out to make perfect sence
if you go into it deep enough. I don't know the real reason why it was
doing as you said but I have experienced some strange issues in relation to
mdi child lists in the menu going a bit loopy and leaving icons lying
around. I ended up rolling my own mdi child list in the end just to get a
working solution. At least you didn't have to go to that extreme.

You might want to take a look at adding borderless forms to a container
if you want total control over the child forms. Just remember that you need
to set the hidden property "toplevel" to false before it can be added.
Anyways, good to hear it's sorted :-)

Nick.
Nov 21 '05 #6
If I'm not mistaken...

If your start form is not maximized, but you bring up another MDI child that
is, the start form will also be maximized in the background. When the other
child closes, the start form restores. MDI children are either all
maximized, or none maximized.

--
Brian Schwartz
FishNet Components
http://www.fishnetcomponents.com
Building better tools for developers - Be part of it!
"Siv" <ms**********@removeme.sivill.com> wrote in message
news:e8****************@TK2MSFTNGP15.phx.gbl...
Nak,
It looks to me like the resize event code was to blame. I have removed that and put the Start form back to how it was (with control box and max button
but no Min button) and it works fine.
What I still don't get is why the one form that was causing me a problem
kept creating multiple control boxes and icons yet the others didn't do it? Siv

--
Siv
Martley, Near Worcester, UK.
"Nak" <a@a.com> wrote in message
news:Ot****************@TK2MSFTNGP14.phx.gbl...
Hi Siv,

I've tried replicating your issue by making an MDI parent and 2
children. In the MDI parent I have added a menu with 2 options, this is
the code that I have put in the form,

Private Function showForm(ByVal iName As String) As Boolean
Dim frm As Form
For Each frm In Me.MdiChildren
If (frm.Name = iName) Then
frm.BringToFront()
Return (True)
End If
Next
End Function

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
If (Not (showForm("Form2"))) Then
Dim pFrmForm1 As New Form2()
pFrmForm1.Name = "Form2"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
If (Not (showForm("Form3"))) Then
Dim pFrmForm1 As New Form3()
pFrmForm1.Name = "Form3"
pFrmForm1.MdiParent = Me
Call pFrmForm1.Show()
End If
End Sub

When either menu item is clicked the form is either created (if
showform returns false) or brought to the front. No problems have occured which make me think that you might have some code elsewhere causing the
issue, are you putting anything into the Closing events of the children?
I know I experienced a bug once with relation to the MDI child list in the menu but I think this one can be resolved. If you can post your code that replicates this then please do, I'll take a look at it, other than that I think you need to check your code.

Nick.

"Siv" <ms**********@removeme.sivill.com> wrote in message
news:eV****************@tk2msftngp13.phx.gbl...
Hi,
I have an MDI application that uses a generic "ShowPage" routine in a
module that is called when I want to display a child form. The basic idea is that in the module I have declared each form as follows:

Friend F0 As frmMain
Friend F1 As frmStart
Friend F2 As frmSearch
Then in my ShowPage routine (which is passed a string "pageToShow" which
is the name of the form I wish to open), I first check to see if we
already have an instance of the form open:
For Each frm As Form In F0.MdiChildren
If frm.Name = pageToShow Then
frm.BringToFront()
Exit Function
End If
Next
If the form isn't already open the code carries on past the above and
opens a new instance of the form:

Select Case pageToShow

Case "frmStart"
F1 = New frmStart
F1.MdiParent = F0
F1.Show()
Case "frmSearch"
F2 = New frmSearch
F2.MdiParent = F0
F2.Show()
F2.Activate()
F2.WindowState = FormWindowState.Maximized
Etc ..
I usually have a button at the bottom of each form that allows the user to close it and return to the start page (this is an MDI child form that is
never closed whilst the app is running as it has a series of button that
access all the other forms on it.
In the click event of the individual forms I have the following:
Me.Close()
F1.Activate()
(F1 being the Start form).
Now the problem. Up to now I have had no problem with this method of
opening and closing forms. Today I added a new form to the set and
configured it like all the others. The problem is that when I close this particular form and then re-open another form, its icon stays in the menu bar along with the form just being opened and at the right hand end of the menu bar I am getting multiple sets of min,max/restore,close buttons. The more time I return to the Start Menu and open forms the more of these
additional control boxes appear almost filling the bar. Clicking these
controls has no effect, or clicking the control menus at the left hand end underneath the form icons doesn't do anything. It's as if these icons and controls are now lost from their form.
Does anyone know why this one form could have caused this behaviour?, I
have checked the form and compared all its non-default properties with the ones that don't cause this behaviour and they all have the same settings. One thing I have also noticed is that when I return to the Start form, the icon is usually the icon from the last form opened not the start form's
own icon.
Siv
Martley, Near Worcester, UK.


Nov 21 '05 #7
Siv
Brian,

I think you are right and this may be why I was having troubles as the
resizing that goes on in the background was causing some sort of cascading
effect that was:

a) messing up the display of control boxes and icons.
be) probably slowing the system quite a bit.

One thing that I have gleaned from other posts here on the subject of MDI is
that MS are now tending towards SDI applications and using "tabbed forms".

When people refer to tabbed forms do the mean a sdi form with a tab control
and then each page of the application is accessed using the tabs?

I have a problem with that sort of thing as a lot of my customers want multi
page databases that have literally hundreds of text boxes, drop lists,
lists, grids etc and if I tried to load all of that on one SDI form the
resource hit would be massive. With an MDI app at least you can load a
form, use it, and then close it as you move to the next page so that the
resource levels stay reasonable. Or am I missing the point, is there some
way to dynamically load the tabs with a form as the user uses them??

--
Siv
Martley, Near Worcester, UK.
"Brian Schwartz" <br***@fishnetcomponentswos.com> wrote in message
news:eM****************@tk2msftngp13.phx.gbl...
If I'm not mistaken...

If your start form is not maximized, but you bring up another MDI child
that
is, the start form will also be maximized in the background. When the
other
child closes, the start form restores. MDI children are either all
maximized, or none maximized.

--
Brian Schwartz
FishNet Components
http://www.fishnetcomponents.com
Building better tools for developers - Be part of it!
"Siv" <ms**********@removeme.sivill.com> wrote in message
news:e8****************@TK2MSFTNGP15.phx.gbl...
Nak,
It looks to me like the resize event code was to blame. I have removed

that
and put the Start form back to how it was (with control box and max
button
but no Min button) and it works fine.
What I still don't get is why the one form that was causing me a problem
kept creating multiple control boxes and icons yet the others didn't do

it?
Siv

--
Siv
Martley, Near Worcester, UK.
"Nak" <a@a.com> wrote in message
news:Ot****************@TK2MSFTNGP14.phx.gbl...
> Hi Siv,
>
> I've tried replicating your issue by making an MDI parent and 2
> children. In the MDI parent I have added a menu with 2 options, this
> is
> the code that I have put in the form,
>
> Private Function showForm(ByVal iName As String) As Boolean
> Dim frm As Form
> For Each frm In Me.MdiChildren
> If (frm.Name = iName) Then
> frm.BringToFront()
> Return (True)
> End If
> Next
> End Function
>
> Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MenuItem2.Click
> If (Not (showForm("Form2"))) Then
> Dim pFrmForm1 As New Form2()
> pFrmForm1.Name = "Form2"
> pFrmForm1.MdiParent = Me
> Call pFrmForm1.Show()
> End If
> End Sub
>
> Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MenuItem3.Click
> If (Not (showForm("Form3"))) Then
> Dim pFrmForm1 As New Form3()
> pFrmForm1.Name = "Form3"
> pFrmForm1.MdiParent = Me
> Call pFrmForm1.Show()
> End If
> End Sub
>
> When either menu item is clicked the form is either created (if
> showform returns false) or brought to the front. No problems have occured > which make me think that you might have some code elsewhere causing the
> issue, are you putting anything into the Closing events of the
> children?
> I know I experienced a bug once with relation to the MDI child list in the > menu but I think this one can be resolved. If you can post your code that > replicates this then please do, I'll take a look at it, other than that I > think you need to check your code.
>
> Nick.
>
> "Siv" <ms**********@removeme.sivill.com> wrote in message
> news:eV****************@tk2msftngp13.phx.gbl...
> Hi,
> I have an MDI application that uses a generic "ShowPage" routine in a
> module that is called when I want to display a child form. The basic idea > is that in the module I have declared each form as follows:
>
> Friend F0 As frmMain
> Friend F1 As frmStart
> Friend F2 As frmSearch
> Then in my ShowPage routine (which is passed a string "pageToShow"
> which
> is the name of the form I wish to open), I first check to see if we
> already have an instance of the form open:
> For Each frm As Form In F0.MdiChildren
> If frm.Name = pageToShow Then
> frm.BringToFront()
> Exit Function
> End If
> Next
> If the form isn't already open the code carries on past the above and
> opens a new instance of the form:
>
> Select Case pageToShow
>
> Case "frmStart"
> F1 = New frmStart
> F1.MdiParent = F0
> F1.Show()
> Case "frmSearch"
> F2 = New frmSearch
> F2.MdiParent = F0
> F2.Show()
> F2.Activate()
> F2.WindowState = FormWindowState.Maximized
> Etc ..
> I usually have a button at the bottom of each form that allows the user to > close it and return to the start page (this is an MDI child form that
> is
> never closed whilst the app is running as it has a series of button
> that
> access all the other forms on it.
> In the click event of the individual forms I have the following:
> Me.Close()
> F1.Activate()
> (F1 being the Start form).
> Now the problem. Up to now I have had no problem with this method of
> opening and closing forms. Today I added a new form to the set and
> configured it like all the others. The problem is that when I close this > particular form and then re-open another form, its icon stays in the menu > bar along with the form just being opened and at the right hand end of the > menu bar I am getting multiple sets of min,max/restore,close buttons. The > more time I return to the Start Menu and open forms the more of these
> additional control boxes appear almost filling the bar. Clicking these
> controls has no effect, or clicking the control menus at the left hand end > underneath the form icons doesn't do anything. It's as if these icons and > controls are now lost from their form.
> Does anyone know why this one form could have caused this behaviour?, I
> have checked the form and compared all its non-default properties with the > ones that don't cause this behaviour and they all have the same settings. > One thing I have also noticed is that when I return to the Start form, the > icon is usually the icon from the last form opened not the start form's
> own icon.
> Siv
> Martley, Near Worcester, UK.
>



Nov 21 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Diana Gard | last post by:
Perhaps this is a design flaw, please let me know. I'm using Access 2000. I have a form with a tab control and 5 subforms within those tabs. The forms match with the tables: Client main,...
6
by: Shimon Sim | last post by:
Is there a consistent way to find out the id of child controls of the UserControl. Should I just use this.name+"_+control.Id;? Shimon
3
by: Nathan Sokalski | last post by:
When I view any page in my application a second time, I recieve the following error: System.Web.TraceContext.AddNewControl(String id, String parentId, String type, Int32 viewStateSize) +313...
1
by: R2D2 | last post by:
Hello, I am trying to get a form to draw arrows linking 2 list boxes to each other. I can write the code to draw the arrows / make them follow the boxes around when they are dragged around the...
2
by: SharpCoderMP | last post by:
i'm trying to embed multiple program icons in my executable. the only way so far i managed to do that is to embed native win32 resource file with multiple icons. it works, but... when i create a...
4
by: Dave White | last post by:
Hello Everyone, I have created two tables to track my students' lessons. Each student is responsible for most, but not all. of the lessons. I've tried a junction table but I can't figure out...
1
by: Seth Petry-Johnson | last post by:
Is there a way to compile a user control into a redistributable assembly , but still have access to its child controls using the .Controls property? Here's what I mean: I have a user control...
12
by: Phil | last post by:
I can check for MdiChildren.Length=0, but which event handler should I put this in to detect when a child window is closed? TIA Phil.
1
by: Vivienne | last post by:
Hi there This is a hard problem that I have - I have only been using sql for a couple of weeks and have gone past my ability level quickly! The real tables are complex but I will post a simple...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.