只允许打开一个窗体

只允许打开一个窗体

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;
        }

<#--{zx1}日志--> <#--推荐日志--> <#--引用记录--> <#--相关日志--> <#--推荐日志--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->
郑重声明:资讯 【只允许打开一个窗体】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——