c#中我们写一个登陆界面是需要打开新窗口后关闭登陆窗口
这个时候我们调用this.close()会出错的,下面介绍2个方法:
1. 先隐藏登录窗口, 然后在主窗口关闭后将登录窗口关闭
代码语言:javascript复制if(true)
{
MainWindow mainWindow = new MainWindow(this);
mainWindow.Show();
this.Hide();
}
登录成功后,通过构造函数传入登录窗口的参数到主窗口,这样在主窗口里可以直接对登录窗口操作
在祝窗口中定义
代码语言:javascript复制Form loginform = null;
public MainWindow(Form myfrom)
{
this.loginform = myfrom;
InitializeComponent();
}
主窗口关闭后,关闭登录窗口
代码语言:javascript复制private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
loginform.Close();
}
2. 将主窗口程序设为主程序,
修改Program.cs
Application.Run(new MainForm());
这样系统启动时,运行的是主窗口程序。然后在主窗口加载时去调用登录窗口就可以了。
代码语言:javascript复制 private void MainForm_Load(object sender, EventArgs e)
{
Form form = new Form();
form.ShowDialog();
this.Close();
}
登录窗口代码为:
this.close();