C#中认一个窗体.show 让另一个.close 只要那个窗体.show后 两个同时close了

2025-03-10 05:16:25
推荐回答(5个)
回答1:

因为新建一个工程后,VS默认Form1是主窗口(估计就是你的登录框),主窗口是不可以close只能hide的(From1是不是主窗体,在Program.cs这里Application.Run后面看出来),这样做的坏处是该程序一直不能被关闭,Form1一直占着内存。

想让Form1关闭,就一个办法,让Form1不做主窗口,改为Form2(你的是form_main),方法如下(以你的例子):
1.在Program.cs中将Application.Run(new Form1());(不知道原来你的叫什么,用默认)改为Application.Run(new form_main());
2.form_main_Load()添加代码:
private void form_main_Load(object sender, EventArgs e)
{
Form1 form1 = new Form1(); //自己改成登录框名称
form1.ShowDialog();
}
这时候在需要关闭form1,显示form_main那就直接使用this.Close()就行了.

注意:不需要在show下form_main了,直接this.Close()一句就够了.

回答2:

代码没问题,工程属性里的设置改下就行:
项目-->属性(XX属性)-->应用程序:windows应用程序框架属性->关机模式改为"当最后一个窗体关闭时"
最后保存

回答3:

你试试把登录框隐藏,把你的this.close()换成this.hide()试试

回答4:

可以在program.cs里面先调用登录对话框
如果验证成功,则把主画面打开,在登录对话框中应该把确定按钮的dialogresult属性设置为ok
login
lg=new
login();
if(lg.showdialog()=dialogresult.ok)
{
form_main
main
=
new
form_main();
main.show();
}

回答5:

this.hide()