try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); int num = (int)command.ExecuteScalar(); if (num > 0) { MessageBox.Show("欢迎进入客户管理中心", "登陆成功", MessageBoxButtons.OK, MessageBoxIcon.Information); Form1 XTjiemian = new Form1(); XTjiemian.Show(); this.Visible = false;//这个是教材的写法,但是我改成this.close(),程序会出错无法运行··· } else { MessageBox.Show("输入的用户名或者密码错误", "登陆错误", MessageBoxButtons.OK, MessageBoxIcon.Information); }
} catch (Exception ex) { MessageBox.Show(ex.Message, "错作数据库出错", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { connection.Close(); }
但是我关闭From1的窗体时,程序仍在运行,无法关闭,图片如下
step 1:填写用户名跟密码
step 2::验证成功
step 3:进入form1窗体界面,而Login窗体消失隐藏
step 4:我单击右上角的X按钮,想退出程序,但是其实程序还处在运行当中,因为Login窗体没有关闭,只不过是隐藏了而已,程序还处在运行状态,从状态栏情况就可以知道
问题:我要如何处理,才能在点击From1窗体的关闭按钮时,退出程序,同时关闭Longin窗体
题主的意图就是要结束整个进程吧?不用遍历所有窗体这么麻烦。
Application.Exit();
或者
Environment.Exit(0);追问还有个问题,请问这个为什么不能写成this.close()
修改后无法运行
这是起始窗体吧?应该不是出错而是整个程序退出了吧?
因为在 C# 中,起始窗体关闭后程序就会退出。其实注意看 Program.cs 里的 Main() 函数就会发现,Application.Run() 是阻塞的,当起始窗体关闭后,Main() 函数代码执行完了,整个程序也就执行完了。
有这种说法,涨见识了,确实login窗体时起始窗体。但是无法网上怎么没有这种说法的