我正在开发一个C#Windows窗体项目,其中主窗体是一个登录窗体,当登录成功完成后我将调用另一个窗体,但我的问题是,如何将被调用窗体设置为主窗口然后关闭最初创建的那个?
答案 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()
。