现有一个父窗体name是Parent,子窗体name是Son,要让Son嵌入在Parent的Panel内,则父窗体的初始加载代码如下:
private void Parent_Load(object sender, System.EventArgs e)
{
this.IsMdiContainer=true;//设置父窗体是容器
Son mySon=new Son();//实例化子窗体
mySon.MdiParent=this;//设置窗体的父子关系
mySon.Parent=pnl1;//设置子窗体的容器为父窗体中的Panel
mySon.Show();//显示子窗体,此句很重要,否则子窗体不会显示
private void Parent_Load(object sender, System.EventArgs e)
{
this.IsMdiContainer=true;//设置父窗体是容器
Son mySon=new Son();//实例化子窗体
mySon.MdiParent=this;//设置窗体的父子关系
mySon.Parent=pnl1;//设置子窗体的容器为父窗体中的Panel
mySon.Show();//显示子窗体,此句很重要,否则子窗体不会显示
}
子窗体不能设置为mdi,最好把窗体border设为none,然后在panel.Controls中进行加载
做的不是嵌入,而是位于panel之上,就好比图层一样让子窗体显示在最上层
如果嵌入的方法如下:
//WinForm嵌入panel
Form2 form = new Form2();
form.FormBorderStyle = FormBorderStyle.None;
form.TopLevel = false;
this.panel1.Controls.Add(form);
form.Show();
或者
FrmDetail Frm=new FrmDetail();
Frm.MdiParent=this;
Frm.Parent=this.Panel1;
Frm.Show();
文章转自http://yinzhihua2008.blog.163.com/blog/static/794306720098192331780/;