c#防止重复表格

时间:2013-07-21 18:41:25

标签: c# forms button

我有2个表单.. form1和form2 ..我在form1上有button1加载form2但是每次我点击button1它都会加载form2的新实例

我希望button1在它打开时带到前面的form2,如果它被最小化则恢复它

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

处理第二个的Form Closing事件
    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
        this.WindowState = FormWindowState.Minimized;
        this.ShowInTaskbar = false;
    }

答案 1 :(得分:0)

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

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