C#窗口关闭的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/27 13:44:00
我的工程里有A B两个窗体 ,A窗体中有个btnA 按钮,我现在要点击btnA按钮, 关闭A 同时打开B,
我在按钮单击事件里写的
this.close();
B b =new B();
b.Show();
这样写不行,A关掉之后B不出来,这是为什么?这是问题 一

我再写成这样
B b=new B();
this.Hide();
b.Show();
这样写后,A看不到,B也可以出来,但是我点击B标题栏上面的X 关闭B窗体后,在任务管理器里还能看到该程序的进程,再运行的时候就说有相同进程,自己想了想,是不是按标题栏上面的X 实际调用的是this.Close(); 而我整个程序都没有运行Application.Exit();,我的猜想正确吗?如果正确,我应该怎么使我按 X的 时候 整个程序真的退出? 这是问题二。

各位路过的师傅,帮我指点指点啊

停止整个程运行是Application.Exit();
你应该注意执行顺序了,应该先显示,再退出窗体。 想一下,前面窗体都关闭了,怎么还能执行下面的程序呢;
所以这样才对
B b=new B();
b.Show();
this.dispose();

B b=new B();
this.Hide();
b.ShowDialog();//这里是模式对话框,直到你关闭b下面的代码才会运行
this.close();
//可以不

要先实例化B,再关闭A。
Hide只是隐藏,你把A隐藏了,但没关闭,所以有相通进程

B b=new B();
b.show();
this.close();