c#关闭窗口~有两个窗体,loginform和mainform~

在program.cs中改了Application.run(new loginform());
情况一
在loginform.cs中
this.hide();

new mainform().show();

发现mainform点右上角关闭后调试还没停止。

情况二
在loginform.cs中
this.close();
new mainform().show();
发现一点击登陆,两个窗口依次闪过~就闪一下,mainform也给关了~

这个this不是指的当前对象吗?谁给解释下,郁闷了~

你好,
情况一:hide()是隐藏窗体,对象还是存在的,所以进程不会结束,可以在该窗体的closed事件中调用Application.Exit()
情况二:你不应该在loginform.cs中用new可以在program.cs中用,当登陆成功设置一个变量,然后关闭该窗体,再在program.cs中创建mainform对象。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-13
因为你的loginform是主窗体,hide了,但是还存在进程,关闭子窗体没用。第二个还是因为主窗体关闭了,子窗体当然也不存在了追问

不会是在program.cs中那里定义的什么主窗体吧~
那这个一般是怎么做的,求指教~

第2个回答  2013-04-13
应该是是Application.exit();
第3个回答  2013-04-13
这个不懂啊!

c#怎么关闭当前窗体2(form2)以及窗体1(form1)并打开窗体3(form3)
按照正常的在你form1的关闭按钮单击事件里写上 this.Close();from2 f2=new form2();f2.Show();这样你会发现按下关闭后整个程序都关了,原因在于你这个程序有个入口点,也就是我们C#里面提到的Main方法,在WForm窗体编程中,点解决方案资源管理,里面有个Program.cs类,点开它,在Main方法里有这...

C# winfrom 如何通过不同条件在关闭当前窗口打开不同的新窗口
loginform中,进注册窗口的按钮代码:private void button2_Click(object sender, EventArgs e){ regForm f = new regForm();f.Show();Hide();} mainform的窗口关闭代码:private void mainForm_FormClosed(object sender, FormClosedEventArgs e){ Application.Exit();} regform的窗口关闭代码 priv...

C#当前登录窗口登录后如何消掉登录窗口呀?使用this.hide()任务栏窗口...
你将你现在的两个Form倒置就行了。直接启动加载主窗体,然后在过程中ShowDialog 登录窗体,成功返回OK然后展示主窗体,取消返回Cancel就退出。例如这样,在主窗体的Load方法中按如下例子写就行:private void fmMDI_Load(object sender, EventArgs e){ fmLogin fm = new fmLogin();if (fm.ShowDialog()...

C#打开另一窗口关闭当前窗口的问题
假设,登录的窗体叫做LoginForm,登录成功后的窗体叫做MainForm。那么我会这么做,先把MainForm设为程序启动窗体,在program.cs文件里改一下。这个应该都会。然后在MainForm类里的构造函数写上 public class MainForm : Form{ public void MainForm_Load(object sender, EventArgs e) { LoginFor...

怎么用C#写一段注销窗体的代码
你的主窗体不再这两个里面吧!注销你把登录成功的按钮关闭掉,再显示登录窗体就是了。还有主窗体是不能关闭的,主窗体管了程序就结束了,只能隐藏。

C#的winform中,窗口间的切换 和关闭
例如 有二个窗体类 form1、form2 两个窗口之间的切换,显示一个就隐藏另一个:form2 f1=new form2();f2.show();this.hide();(this 即为当前窗体类form2 )关闭其中一个就关闭整个程序:application.exit();这是将这个运行的程序关闭,就可将这两个窗体都关闭。

C# 跳转到另一个Form窗体时如何关闭当前Form窗体?
方法一:关闭子窗体后 1、form2.Closed += (ss,ee)=> { this.Close(); };2、Application.OpenForms集合,找到要关闭的窗口,再Close:foreach (var item in Application.OpenForms),{ if (item is Form1) item.Close(); }。方法二:B new_form = new B();new_form.owner = this;this...

[C#] 一个窗口中打开另一个窗口并关闭当前窗口代码
this);f2.Show();} form2代码 private Form1 f1;public Form2(Form1 f){ InitializeComponent();f1 = f;f1.Hide();} private void Form2_FormClosing(object sender, FormClosingEventArgs e){ f1.Close();} 直接关闭的方法我没有实现,还是通过隐藏,在最后同时关闭销毁两个form实现 ...

...父窗体隐藏,而后,单击子窗体的按钮,子窗体关闭,父窗体显示...
如果是登录窗口,一般的做法是更改program.cs,先显示登录窗口,通过后再显示主窗体,假定你的登录窗体叫Login,主窗体叫MainForm static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Login login = new Login(); login.ShowDialog(...

C# 两个窗体 的问题
LocalForm1);} } 原理如下:在程序启动时main方法就会实例化Form1和Form2两个窗体,并作为静态属性保存在内存中,在整个软件的执行中窗体都以show和hide的形式显示和隐藏,用户所作的操作都是对内存中实例化后的窗体进行,程序实行完毕,内存释放,窗体才会被真正释放。纯手打,代码经本地测试无误~...

相似回答