最近想做一个基于Socket的通讯工具,想模仿QQ那样,需要先登录,登录成功后才显示主界面。但一开始的时候只要对登录的窗体做Close,然后程序就直接退出了。因为程序入口是登陆窗体,一旦Close了,整个程序自然也就退出了,如果想实现关闭登录界面(不是Hide()隐藏),显示主界面的话,可以利用DialogResult来实现。主界面设置为入口的主界面。主界面的Load事件如下:
private void MainInterface_Load(object sender, EventArgs e)
{
Login login = new Login();
login.ShowDialog();
if (login.DialogResult != DialogResult.OK)
{
this.Close();
}
}
然后在登录界面的验证按钮事件里验证通过后只要加上如下代码即可:
this.DialogResult = DialogResult.OK;
this.Close();
这样就可以实现关闭登录界面时不退出应用程序了。