如何使用按钮事件在 C# 中切换表单

Den*_*nis 5 .net c# winforms

我这里有一些代码:

private void button1_Click(object sender, EventArgs e)
{
    Application.Run(new Form3());
}
Run Code Online (Sandbox Code Playgroud)

虽然我认为这不是您要更改表单的方式,但当我运行它时,它抛出了一个错误,指出:

在单个线程上启动第二个消息循环不是有效操作

Lad*_*nka 5

您不能使用Application.Run- 即用于启动 windows 窗体应用程序(在应用程序中的所有窗体之间共享的内部消息循环),而不是用于显示窗体。每个表单都有ShowandHide方法,所以你应该简单地调用:

private void button1_Click(object sender, EventArgs e)
{
    Form3 f = new Form3(); // This is bad
    f.Show();
}
Run Code Online (Sandbox Code Playgroud)

但是您不应该每次想要展示它时都创建表单。如果您只想拥有表单的一个实例,您应该将其保持为全局,并且仅在需要时显示或隐藏它。否则,您将不得不调用Close而不是Hide清除表单消耗的所有资源。