-5

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

如果按钮1打开,我希望将它带到最前面,如果它被最小化,我希望它恢复它

4

2 回答 2

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;
    }
于 2013-07-21T19:31:03.667 回答
0

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

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

于 2013-07-21T19:29:56.747 回答