WinForm下父窗体中嵌入子窗体 - (第四十二讲)
视频讲解如下:
父窗体中嵌入子窗体主要是要进行如下设置:
this.IsMdiContainer= true; // 设置父窗体是容器
Form2 f = new Form2(); // 实例化子窗体
f.MdiParent= this; // 设置窗体的父子关系
f.Parent= panel; // 设置子窗体的容器为父窗体中的panel
f.Show(); / /显示子窗体,此句很重要,否则子窗体不会显示
下面的演示代码提供了两种嵌入效果,一种是直接嵌入到父窗体中,另一种是嵌入到父窗体的一个panel控件中。
嵌入到父窗体中的效果如下:

演示代码如下:
using System;
using System.Windows.Forms;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
Form2 form2 = new Form2();
public Form1()
{
InitializeComponent();
this.IsMdiContainer = true;
panel1.Visible = false; // 是否显示panel1控件
}
private void 子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
if(form2 == null || form2.IsMdiChild == false) // 判断窗口是否已经打开
{
form2 = new Form_Mqtt();
form2.MdiParent = this;
form2.Show();
}
else
{
form2.Activate(); //置顶窗口
}
}
}
}
嵌入到父窗体控件panel中的效果如下:

演示代码如下:
using System;
using System.Windows.Forms;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.IsMdiContainer = true;
panel1.Visible = true; // 是否显示panel1控件
}
private void 子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.MdiParent = this;
f.Parent = panel1;
f.Show();
}
}
}