c# - 关闭一个表单然后调用另一个

标签 c# forms winforms

我想关闭当前使用的表单 (MainForm),然后打开第二个表单 (Form)。

我试过:

private void buttonStartQuiz_Click(object sender, EventArgs e)
{
    this.Close();

    Form2 form2 = new Form2();
    form2.ShowDialog();
}

或者在 form2.ShowDialog() 之后添加 this.Close(); 也不起作用。

有什么提示吗?

编辑:还可以通过在 form2.ShowDialog() 之后添加 this.Close() 添加它,它仅在我关闭新表单时关闭。 如果我改为选择 form2.Show(),它会立即关闭这两个表单。

最佳答案

改变

this.Close();

收件人:

this.Hide();

因为您无法关闭主应用程序窗口并希望应用程序在它之后运行。 您必须隐藏主窗体或将主窗口更改为仍然打开的窗口。

在这种情况下,您必须在 ShowDialog() 结束后关闭主窗口。 然后你必须在这个按钮事件函数的末尾添加 this.Close()

您的代码新代码是:

private void buttonStartQuiz_Click(object sender, EventArgs e)
    {
        // hide main form
        this.Hide();

        // show other form
        Form2 form2 = new Form2();
        form2.ShowDialog();

        // close application
        this.Close();
    }

关于c# - 关闭一个表单然后调用另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2751076/

相关文章:

javascript - 使用javascript从下拉列表中获取选项标题

c# 如何记录意外的程序退出

c# - 什么是合适的 NHibernate/Iesi.Collections.Generic.ISet<T> 替代品?

javascript - 如何使用 HTML 表单在 POST 正文中发送未命名的 XML 数据?

forms - cakePHP 表单输入标签覆盖 inputDefaults

c# - 进程不会在表单关闭时终止

C#:交换 winform 控件的正确方法是什么?

c# - 使用 axvlcplugin 将 rtsp 视频流式传输到文件

c# - 使用带反射的 XPath 样式查询

c# - Gridview 将相似的行归为一组