从主窗体打开另一个窗体,然后关闭C#项目上的主窗体

时间:2015-06-01 16:42:06

标签: c# forms winforms

我正在开发一个C#Windows窗体项目,其中主窗体是一个登录窗体,当登录成功完成后我将调用另一个窗体,但我的问题是,如何将被调用窗体设置为主窗口然后关闭最初创建的那个?

1 个答案:

答案 0 :(得分:2)

您可能只想Show()新表单,Hide()登录表单。

var secondForm = new MyForm(); // or whatever the name of your form is
secondForm.Show();
this.Hide();

您可以在登录表单上调用Close()而不是Hide(),但这会终止该应用程序。您可以在Main中的Program.cs方法中看到这一点,该方法可能如下所示:

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new LoginForm());
    }

一旦来自LoginForm的初始Application.Run关闭,程序就会结束。您可以通过更改Main()所做的更改(即作为初始表单打开的表单)来更改此设置。例如,您可以将第二个表单设置为主表单,如果用户未登录,则将其隐藏在Form_Load事件中。

因此,根据您的工作流程,根据Show()Hide()Close()来考虑这些表单会很有帮助。任何时候都可以存在任意数量的表单,您只需根据工作流程控制向用户显示哪些表单。

如果您想明确退出应用程序,但隐藏了初始表单,则可以从其他地方调用Application.Exit()