Connecting Tech Pros Worldwide Forums | Help | Site Map

Embedding form in a panel to allow form in non-child window area

Yasutaka Ito
Guest
 
Posts: n/a
#1: Nov 22 '05
Hi,

I have an MDI application, in which I want to embed one form
(System.Windows.Forms.Form) into a specified area of my MDI application.
This is, wihtout affecting the capability of other child forms opening.

Currently, I'm achieving this by...
1) place a panel on an mdi container form, setting its Dock to Top
2) have following code to embed a form into this panel (crazy, ha?)

// FormToEmbed is of type System.Windows.Forms.Form
FormToEmbed form = new FormToEmbed;
form.FormBorderStyle = FormBorderStyle.None;
form.MaximizeBox = false;
form.MinimizeBox = false;
form.ControlBox = false;
form.MdiParent = this;
form.Parent = this.panel1
form.Show();

I have a strong feeling that this is too crude... is there any better way
that you suggest?
These days many programs like Visual Studio .NET IDE, have a docking window
or tabbed window, but I wonder what's the trick behind that?

Would appreciate any input suggestions you may.

thanks!
-Yasutaka


Yasutaka Ito
Guest
 
Posts: n/a
#2: Nov 22 '05

re: Embedding form in a panel to allow form in non-child window area


The code I gave run, though...
I'll still give a try of the way you suggested.

But, isn't there better way than to embed in panel?

thanks!
-Yasutaka

"Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
news:usO$w4z6DHA.2480@TK2MSFTNGP10.phx.gbl...[color=blue]
> * "Yasutaka Ito" <nobody@nonexistent.com> scripsit:[color=green]
> > I have an MDI application, in which I want to embed one form
> > (System.Windows.Forms.Form) into a specified area of my MDI application.
> > This is, wihtout affecting the capability of other child forms opening.
> >
> > Currently, I'm achieving this by...
> > 1) place a panel on an mdi container form, setting its Dock to Top
> > 2) have following code to embed a form into this panel (crazy, ha?)
> >
> > // FormToEmbed is of type System.Windows.Forms.Form
> > FormToEmbed form = new FormToEmbed;
> > form.FormBorderStyle = FormBorderStyle.None;
> > form.MaximizeBox = false;
> > form.MinimizeBox = false;
> > form.ControlBox = false;
> > form.MdiParent = this;
> > form.Parent = this.panel1
> > form.Show();
> >
> > I have a strong feeling that this is too crude... is there any better[/color][/color]
way[color=blue][color=green]
> > that you suggest?[/color]
>
> You cannot embed an MDI child in a panel on the MDI parent. You can set
> the form's 'TopLevel' property to false and then add it to the panel's
> 'Controls' collection.
>
> --
> Herfried K. Wagner [MVP]
> <http://www.mvps.org/dotnet>[/color]

Closed Thread