2013-07-21 73 views
-5

我有2种形式.. Form 1和Form ..我在Form1上Button1的加载窗口2,但我每次单击button它加载的Form2新实例C#防止复制形式

我想Button1以带来正面窗口2如果它已打开并且在最小化时恢复它

+0

好,你有什么试过? –

回答

2

这应该工作(没有测试但它)

public static bool _Invoked; 
    Form2 f2 = new Form2(); 

    private void button1_Click(object sender, EventArgs e) 
    { 
     if (!_Invoked) 
     { 
      _Invoked = true; 
      f2.Show(); 
     } 
     else if (_Invoked) 
     { 
      f2.BringToFront(); 
      _Invoked = false; 
     } 
    } 

添加评论进一步澄清

编辑:

只是测试这和它的工作

Form2 f2 = new Form2(); 
    bool _Clickone = false; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     if (!_Clickone) 
     { 
      _Clickone = true; 
      f2.Show(); 
     } 
     else 
     { 
      f2.WindowState = FormWindowState.Normal; 
      f2.ShowInTaskbar = true; 
      f2.BringToFront(); 
     } 
    } 

然后处理表格关闭第二次为m的事件

private void Form2_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     e.Cancel = true; 
     this.WindowState = FormWindowState.Minimized; 
     this.ShowInTaskbar = false; 
    } 
+0

非常完美..谢谢Precious1tj –

+0

很高兴我可以帮助 – 2013-07-21 19:43:13

+0

有一个问题..当我点击button1加载form2通常,如果我再次点击它带来form2根据需要再次前面..但如果我完全关闭form2并再次单击button1它不会加载form2只是无所作为。 –

0

您可以通过在form2中创建onClose事件来完成此操作,您可以在其中取消关闭并将可见性设置为隐藏。

然后不再创建新实例,而是将可见性再次设置为可见。

+0

你可以告诉我的代码做到这一点,如果你可以plz –