MDI 窗体

Posted 岁月静好123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDI 窗体相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace _7._1练习
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void 销售模块ToolStripMenuItem_Click(object sender, EventArgs e)
{
bool has = false;
Form2 f2 = new Form2();

foreach (Form f in panel1.Controls)
{
if (f.Name == f2.Name)//窗口只打开一次
{
has = true;
f.Show();
f2.Close();
}
}
if (has)
{
foreach (Form f in panel1.Controls)
{
if (f.Name != f2.Name)
{
f.Hide();//相同命名自动隐藏
}
}
}
else
{
f2.WindowState = FormWindowState.Maximized;//窗口最大化
f2.MdiParent = this;//mdi 父集是form1
f2.Parent = panel1;// 父集是form1 里的 panel1
f2.Show();
}
}

private void 仓库模块ToolStripMenuItem_Click(object sender, EventArgs e)
{
bool has = false;
Form f3 = new Form3();

foreach (Form f in panel1.Controls)
{
if (f.Name == f3.Name)////窗口只打开一次
{
has = true;
f.Show();
f3.Close();
}
}
if (has)
{
foreach (Form f in panel1.Controls)
{
if (f.Name != f3.Name)
{
f.Hide();////相同命名自动隐藏
}
}
}
else
{
f3.WindowState = FormWindowState.Maximized;////窗口最大化
f3.MdiParent = this;//mdi 父集是form1
f3.Parent = panel1;// 父集是form1 里的 panel1
f3.Show();
}
}

private void panel1_Paint(object sender, PaintEventArgs e)
{

}
}
}

以上是关于MDI 窗体的主要内容,如果未能解决你的问题,请参考以下文章

MDI窗体容器--12月15日

如何实现MDI窗体不重复打开同一个子窗体?

窗体容器MDI

MDI窗体

MDI窗体

delphi mdi子窗体显示和释放的问题