Home All Groups Group Topic Archive Search About

Resize nested control at runtime

Author
12 Feb 2007 11:14 AM
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
Author
12 Feb 2007 1:30 PM
Branco Medeiros
Russ Green wrote:
Show quoteHide quote
> 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.
Are all your drivers up to date? click for free checkup

Author
12 Feb 2007 1:40 PM
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.
Author
12 Feb 2007 2:20 PM
Branco Medeiros
Russ Green wrote:
> 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.
Author
12 Feb 2007 2:50 PM
Russ Green
Yes,   some of the other properties are set in the designer....found them
and fixed it.....troubled me for ages....thanks

Bookmark and Share