在网上找了两个解决办法:最大的不同点是一个用了父窗体的MdiChildren来作为判断依据,而另一个则是用Application.OpenForms,试了一下都可以,哪天再研究下。
第一个,转自:http://www.cnblogs.com/virusswb/
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication4
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void 登录ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form form in Application.OpenForms)
{
if (form.Name == "frmLogin")
{
form.Activate();
form.WindowState = FormWindowState.Maximized;
return;
}
}
frmLogin login = new frmLogin();
login.MdiParent = this;
login.WindowState = FormWindowState.Maximized;
login.Show();
}
private void 日志ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form form in Application.OpenForms)
{
if (form.Text == "frmLogInfo")
{
form.Activate();
return;
}
}
frmLogInfo log = new frmLogInfo();
log.MdiParent = this;
log.WindowState = FormWindowState.Maximized;
log.Show();
}
private void frmMain_Load(object sender, EventArgs e)
{
frmLogin login = new frmLogin();
login.WindowState = FormWindowState.Maximized;
login.MdiParent = this;
login.Show();
}
}
}
-------------------------------------分割线--------------------------------------------------------------------------------------------
2.MDI窗体:创建MDI父窗体方法
(1)选中Form1窗体,属性窗口中,设置IsMDIContainer为“True”(即该窗体为子窗体的MDI父窗体)
(2)拖一个MenuStrip“菜单”组件到Form1中,将第一个主菜单设置为“文件”,在下拉菜单中增加“打开Form2子窗体”和“关闭”两项。
3.MDI窗体:创建MDI子窗体方法
(1)在项目解决方案管理器上右击项目添加新建项,添加一个Windows窗体,Form2。
(2)双击“打开Form2子窗体”菜单按钮触发事件:
private void 打开Form2子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
4.MDI窗体:确定活动的MDI子窗体(不允许连续单击弹出Form2子窗体)
双击“打开Form2子窗体”菜单按钮触发事件:
private void 打开Form2子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
5.MDI窗体:在父窗体中排列MDI子窗体方法
在"打开Form2子窗体"菜单按钮触发事件代码中的最后加入下面一句话:
this.LayoutMdi(MdiLayout.TileHorizontal);