Resize nested control at runtime

R

Russ Green

I have a VB.NET app that uses lots of forms which I am loading into a panel
cotrol using.....

Me.pnlMain.Controls.Clear()

frm.TopLevel = False
frm.WindowState = FormWindowState.Maximized
frm.Dock = DockStyle.Fill
frm.Anchor = AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Top +
AnchorStyles.Bottom
frm.AutoSize = True
frm.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink

Me.pnlMain.Controls.Add(frm)
frm.Show()


What I want to do though is have the form resize when the panel control
(which resizes with it's main form) resizes....i've tried something like the
following but it's not working....How can I do this?

Private Sub pnlMain_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles pnlMain.Resize
On Error Resume Next
Debug.WriteLine(Me.pnlMain.Size.Width.ToString & " x " &
Me.pnlMain.Size.Height.ToString)
Debug.WriteLine(Me.pnlMain.Controls.Item(0).Width & " x " &
Me.pnlMain.Controls.Item(0).Height)

Dim oFrm As New Form

If Me.pnlMain.Controls.Count > 0 Then
'Debug.WriteLine("There is a control in the panel " &
Me.pnlMain.Controls.Item(0).Name)
With Me.pnlMain.Controls.Item(0)
.Size = New Size(Me.pnlMain.Size.Width,
Me.pnlMain.Size.Height)
End With


End If
End Sub
 
B

Branco Medeiros

Russ said:
I have a VB.NET app that uses lots of forms which I am loading into a panel
cotrol using.....

Me.pnlMain.Controls.Clear()

frm.TopLevel = False
frm.WindowState = FormWindowState.Maximized
frm.Dock = DockStyle.Fill
frm.Anchor = AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Top +
AnchorStyles.Bottom
frm.AutoSize = True
frm.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink

Me.pnlMain.Controls.Add(frm)
frm.Show()

What I want to do though is have the form resize when the panel control
(which resizes with it's main form) resizes....i've tried something like the
following but it's not working....How can I do this?
<snip>

You're doing too much. You only need to set TopLevel to false, Dock to
Fill and add the form to the panel. The other properties (WindowState,
Autosize, etc) are not needed. Setting WindowState will actually
prevent the form from automatically resizing.

HTH.

Regards,

Branco.
 
R

Russ Green

Thanks for the reply but I've now only got

Me.pnlMain.Controls.Clear()

frm.TopLevel = False
frm.Dock = DockStyle.Fill

Me.pnlMain.Controls.Add(frm)
frm.Show()

And when my panel resizes the form I've loaded into it doesn't.
 
B

Branco Medeiros

Russ said:
Thanks for the reply but I've now only got

Me.pnlMain.Controls.Clear()

frm.TopLevel = False
frm.Dock = DockStyle.Fill

Me.pnlMain.Controls.Add(frm)
frm.Show()

And when my panel resizes the form I've loaded into it doesn't.

Maybe you need to provide more details, then (are you setting some of
those properties in the designer, for instance?).

It resizes here... =)

Regards,

Branco.
 
R

Russ Green

Yes, some of the other properties are set in the designer....found them
and fixed it.....troubled me for ages....thanks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top