W i n F o r m 在 窗 体 中 嵌 入 窗 体 WinForm在窗体中嵌入窗体 WinForm在窗体中嵌入窗体
Form1.cs
SubForm
代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 窗体嵌入
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 窗体嵌入通用方法
/// </summary>
/// <param name="subForm"></param>
private void OpenForm(Form subForm)
{
foreach (Control item in this.panel1.Controls)
{
if (item is Form)
{
((Form)item).Close();
}
}
subForm.TopLevel = false;// 将子窗体设置为非顶级控件
subForm.FormBorderStyle = FormBorderStyle.None;//设置无边框
subForm.Parent = this.panel1;//设置窗体容器
subForm.Dock = DockStyle.Fill; //容器大小随着调整窗体大小自动变化
subForm.Show();
}
private void button1_Click(object sender, EventArgs e)
{
OpenForm(new SubForm());
}
private void button2_Click(object sender, EventArgs e)
{
OpenForm(new SubForm2());
}
private void button3_Click(object sender, EventArgs e)
{
OpenForm(new SubForm3());
}
}
}
效果图