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

Y

Yasutaka Ito

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
 
H

Herfried K. Wagner [MVP]

* "Yasutaka Ito said:
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?

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.
 
Y

Yasutaka Ito

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
 

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