我有2个表格
form1 = login,
form2 = main
我尝试将其从form1
切换为form2
(new Form2()).Show();
this.Hide();
一切正常但是当我关闭程序时仍然会在进程管理器中显示/不会自动停止调试,那么如何解决?
答案 0 :(得分:1)
您需要添加以下行:
form2.Closed += (s, args) => Close();
所以你的代码应该是这样的:
Hide();
Form2 form2 = new Form2();
form2.Closed += (s, args) => Close();
form2.Show();
当您关闭Form1
时,这将关闭Form2
。如果用户在RightClick -> Close
上按 X 或 ALT + F4 或Form2
,则Form2
和隐藏的Form1
将被关闭。
答案 1 :(得分:0)
我推荐一种完全不同且可靠的方法。
Login.cs
public partial class Login: Form
{
public bool isLogin=false;//This should be public
public Login()
{
InitializeComponent();
}
private void CheckUsernamePassword(string username,string password){
if(username=="yourname" && password =="yourpass"){
isLogin=true;
this.close();
}else{
MessageBox.Show("Wrong username or password");
}
}
}
Program.cs的
//Remove this line
"Application.Run(new Form1());" replace
Login login = new Login();
Application.Run(login);
if(login.isLogin){// User logged
Application.Run(new main());
}
此代码现在非常成功。