【问题标题】:Switching from form1 to form2从form1切换到form2
【发布时间】:2018-11-04 02:25:28
【问题描述】:

我有 2 个表格

form1 = login,
form2 = main 

我试过这个从form1切换到form2

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

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

【问题讨论】:

标签: c# .net winforms


【解决方案1】:

你需要添加这一行:

form2.Closed += (s, args) => Close();

所以你的代码应该是这样的:

Hide();
Form2 form2 = new Form2();
form2.Closed += (s, args) => Close();
form2.Show();

当您关闭 Form2 时,这将关闭 Form1。如果用户在Form2上按XALT+F4RightClick -> CloseForm2和隐藏的Form1将关闭。

【讨论】:

    【解决方案2】:

    我推荐一种完全不同的可靠方法。

    登录.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");
            }
    
         }
     }
    

    程序.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());
    }
    

    此代码现在可以非常成功地运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      相关资源
      最近更新 更多