2010-01-21 13:55:08 阅读3 评论0 字号:大中小
public bool checkChildFrmExist(string childFrmName)
{
foreach (Form childFrm in this.MdiChildren)
{
//用子窗体的Name进行判断,如果已经存在则将他xx
if (childFrm.Name == childFrmName)
{
if (childFrm.WindowState == FormWindowState.Minimized)
{
childFrm.WindowState = FormWindowState.Normal;
childFrm.Activate();
return true;
}
}
else
{
childFrm.Close();
}
}
return false;
}
在按钮里加上判断
private static Form1 form1;//这一句很关键
private void button1_Click_1(object sender, EventArgs e)
{
if (this.checkChildFrmExist("subjmanage") == true)
{
form1.Activate();
}
else
{
if (form1 == null || form1.IsDisposed)
{
form1 = new Form1();
form1.TopLevel = false;
form1.Dock = DockStyle.Fill;
form1.FormBorderStyle = FormBorderStyle.None;
form1.Parent = panel1;
form1.Show();
}
else
{ form1.Activate(); }
}
}
以下代码检测一个Panle容器里是否有指定的窗体,并且根据第二个参数决定是否关闭其他窗体
/// <summary>
/// 验证窗体是否存在于panel1容器
/// </summary>
/// <param name="strform">需要校验的子窗体name</param>
/// <param name="strtype">是否关闭其他窗体</param>
/// <returns>true or false</returns>
private bool PaneForm(string strform, string strtype)
{
foreach (Form form1 in this.panel1.Controls)
{
if (form1.Name == strform)
{
form1.Refresh();
panel1.Refresh();
return true;
}
else
{
if (strtype == "0")
{ form1.Close(); }
return false;
}
}
return false;
}