vs2008的C#环境中如何,点击右上角的X按钮操作,进行关闭窗体时同时让visible=false的窗体也关闭?

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窗体时起始窗体。但是无法网上怎么没有这种说法的

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-01
遍历所有窗体,检查窗体是否可见。
第2个回答  2015-03-01
试试在Form1Closed事件下Application.Exit();追问

还有个问题,请问这个为什么不能写成this.close()

修改成this.close()后,整个程序都会关闭,好奇怪,其实我只想关闭Login窗体,弹出Form1啊……

追答

肯定的啊,Form1是跟着Login打开的,Login都关闭了Form1肯定关闭啊。
当然你也可以把this.Visble=false改成this.Hide效果是一样的。都是隐藏掉Login

相似回答