日期:2014-05-18 浏览次数:21800 次
private Form2 form2;
private void button1_Click(object sender, EventArgs e)
{
    if (form2 == null || form2.IsDisposed)
        form2 = new Form2();
    form2.Show();
}
------解决方案--------------------
        public static bool IsOpened(string frmName)
       {
           bool isOpened = false;
           foreach (Form frm in Application.OpenForms)
           {
               if (frm.Name == frmName)
               {
                   isOpened = true;
               }
           }
           return isOpened;
       }
true 为重复
------解决方案--------------------
是来学习的 看看
------解决方案--------------------
22楼的方法还成,省去一个局部变量,并且可以处理其他类创建的同类窗体,可以改改。。。
private Form FindForm(Type type)
{
    foreach(Form form in Application.OpenForms)
        if (form.GetType() == type) return form;
    return null;
}
private void button1_Click(object sender, EventArgs e)
{
    Form form2 = FindForm(typeof(Form2));
    if (form2 == null) form2 = new Form2();
    form2.Show();
}
------解决方案--------------------
省去一个局部变量字段。
勘误
------解决方案--------------------
我在学习
------解决方案--------------------
ShowDialog行不行,能不能满足你的要求?
------解决方案--------------------
用Form.ShowDialog()就可以
------解决方案--------------------
学习了。
------解决方案--------------------
用那个互斥体的模式,具体的词想不起来了.回家得翻翻书.
------解决方案--------------------