1.退出系统的判断(mdi)
public Form1()
{
InitializeComponent();
this.IsMdiContainer = true;//设置有子窗体
}
private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!CheckExistsForms(typeof(mima)))
{
mimamm = new mima();
mm.MdiParent = this;//指定父为Form1
mm.StartPosition = FormStartPosition.CenterScreen;//(3)
mm.Show();
}
}
private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.MdiChildren.Length == 0)//不为0显然开了子窗体
{
Application.Exit();
}
else
{
MessageBox.Show("请先关闭其它业务窗体!!!");
}
}
//判断此窗体是不否已经打开,要是窗口已经打开,则就打它这个开的,不另开一个(mdi)
private bool CheckExistsForms(Type formType)
{
foreach (Form f in this.MdiChildren)
{
if (f.GetType().Equals(formType))
{
if (FormWindowState.Minimized == f.WindowState)
f.WindowState = FormWindowState.Normal;
f.Activate();
return true;
}
}
return false;
}
3.设置窗口的大小,让它不受其它窗体,特别是最大的影响,还在设置中
把不是全屏的窗体都改为模式(showdialog)
4.主窗口的退出
A.自己做的按钮,可能判断CheckExistsForms
B.事件FormClosing它就比较烦点,要是子也加了FormClosing这个事件如,退出判断是否保存数据就要加一个关闭事件的原因的判断
if (e.CloseReason == CloseReason.MdiFormClosing)
{
e.Cancel = true;
return;
}
//父关的时候,我做为子,不关
而其它的子窗口没有加 FormClosing事件所以没有判断原因