日期:2014-05-17  浏览次数:20643 次

Winforms窗体怎样能不重复打开
小弟现在做一个KTV  比如有3个页面A,B,C
A,是拼音点歌 B是排行榜 C是播放器 C上有一个返回按钮
分别从A → C 和 B → C 
每次我 从A → C 返回 再从B → C 他就又打开一个C 然后同时放着两首歌
怎样能 从A → C 返回 再B → C 时候 显示的还是 我从A → C 时的C窗体呢?
winforms C#

------解决方案--------------------
单例模式
------解决方案--------------------
refer:
  private static Form3 form3;
        public static Form3 CreateInstrance()
        {
            if (form3 == null)
            {
                form3 = new Form3();
            }
            return form3;
        }

  private void Form3_FormClosing(object sender, FormClosingEventArgs e)
        {
            form3 = null;
        }

------解决方案--------------------
var form3 = Application.OpenForms.OfType<Form3>().FirstOrDefault();
if (form3 == null) form3 = new Form3();
form3.Show();
------解决方案--------------------
参考:http://www.cnblogs.com/zhili/p/OnlyInstance.html