从form1切换到form2

时间:2018-05-24 19:02:50

标签: c# .net winforms

我有2个表格

form1 = login,
form2 = main 

我尝试将其从form1切换为form2

(new Form2()).Show();
this.Hide();

一切正常但是当我关闭程序时仍然会在进程管理器中显示/不会自动停止调试,那么如何解决?

2 个答案:

答案 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());
}

此代码现在非常成功。