窗体关闭问题?

das521 2008-07-17 08:58:36
我的项目里有两个窗体,其中一个窗体是通过添加窗体,
使用代码
form2 f=new form2();
在建项目是的窗体上放了一个button,通过点击button的Click事件,想把原来的那个窗体关掉,然后f.Show();
怎么样实现?
问题比较基础,大家可别笑我,呵呵
...全文
127 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
das521 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wj0728 的回复:]
引用 2 楼 manbufenglin 的回复:
C# codeprivate void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();

this.Hide();

}
试一试


这种方法有问题,你在关闭掉弹出窗口后隐藏的窗口不会显示也不会被释放,程序不能退出


C# codeprivate void button1_Click(object sender, EventArgs e)

[/Quote]
测试了一下,感觉这个最好,当然不是this.cose,而是this.Close();谢了
wo2xie 2008-07-18
  • 打赏
  • 举报
回复
this.close;
Form2 a=new Form2();
Application.run(a);
我想应该是把Form1关闭,然后显示Form2比较好
fengf840621 2008-07-18
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form2 f = new Form2();
f.Showdialog();
this.Cose();
}
麒麟老码 2008-07-18
  • 打赏
  • 举报
回复
最好要使用单例模式
zxrglc 2008-07-18
  • 打赏
  • 举报
回复
this.visalble=false;
forom2 f2=new form2();
f2.show();
wufan110 2008-07-18
  • 打赏
  • 举报
回复
Form2 f = new Form2(this);//传当前窗体的实例,然后在单击按钮中,关闭.
f.Show();
LittleXun 2008-07-18
  • 打赏
  • 举报
回复
this.Close();就把窗体关闭了=关闭的程序;
this.Hide();可以,资源不是问题
我是用this.visalble=false.:<
panw520 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 manbufenglin 的回复:]
引用 6 楼 wj0728 的回复:
引用 2 楼 manbufenglin 的回复:
C# codeprivate void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();

this.Hide();

}
试一试


这种方法有问题,你在关闭掉弹出窗口后隐藏的窗口不会显示也不会被释放,程序不能退出


C# codeprivate void button1_Click(object sender, EventArgs e)


正解诶!!
[/Quote]
rack79 2008-07-18
  • 打赏
  • 举报
回复
补充下RunningControl类,GetLog属性 是我用来检验用户登录的,你可以忽略
rack79 2008-07-18
  • 打赏
  • 举报
回复
不建议Hide
在Main方法里面如下写:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new frmLogin());

//新建Login窗口(Login是自己定义的Form)
frmLogin Log = new frmLogin();

//使用模式对话框方法显示Log
Log.ShowDialog();

//DialogResult就是用来判断是否返回父窗体的
RunningControl RC=new RunningControl();
bool OLog=RC.GetLog();//如果登录窗体的登录身份验证通过,则为ture!!
if (OLog == true)
{
frmMain M=new frmMain();
Application.Run(M);
//记得在登录窗口确认按钮最后关闭登录窗口
}


PS:补充,把程序属性的Startup Object属性设置成 '你的项目名.Program'
SuperTyro 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 manbufenglin 的回复:]
C# codeprivate void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();

this.Hide();

}
试一试
[/Quote]

不建议用 hide 方法 如果窗体不想要了 想关闭他 窗体对象.Close() 就好了

我是小菜鸟! 说的不好清见谅, 希望能够帮到你!
mayvac 2008-07-18
  • 打赏
  • 举报
回复
学习,走过路过,别错过。
manbufenglin 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wj0728 的回复:]
引用 2 楼 manbufenglin 的回复:
C# codeprivate void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();

this.Hide();

}
试一试


这种方法有问题,你在关闭掉弹出窗口后隐藏的窗口不会显示也不会被释放,程序不能退出


C# codeprivate void button1_Click(object sender, EventArgs e)

[/Quote]
正解诶!!
wj0728 2008-07-18
  • 打赏
  • 举报
回复
不好意思,应该是this.Close();
wj0728 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 manbufenglin 的回复:]
C# codeprivate void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();

this.Hide();

}
试一试
[/Quote]

这种方法有问题,你在关闭掉弹出窗口后隐藏的窗口不会显示也不会被释放,程序不能退出

private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form2 f = new Form2();
f.Showdialog();
this.Cose(); //这样可以实现关闭弹出窗口的同时关闭后台隐藏的窗口,2楼的方法会导致你的隐藏窗口不会被释放,这样会有问题

}
xiaoqiuwyh 2008-07-17
  • 打赏
  • 举报
回复
主窗体不能关掉,如果关了就退出整个程序了,所以只能隐藏,2楼的方法可以.
atlasroben 2008-07-17
  • 打赏
  • 举报
回复
2个窗体,第一个form1第二个form2
如果第二个form2是第一个form1上面show出来的,也就是说form1是form2的父窗体那么form2是不能关闭form1的
你只能控制form1隐藏
如果form2与form1都是同级的比如都是mdi的子窗体那么form2是可以关闭form1的
如果在此过程中需要保留数据仅隐藏不怕占用内存的话可以hide而不close
xuqunying0545 2008-07-17
  • 打赏
  • 举报
回复
百度摆摆,相关多的是
form f=new form2();
f.owner=this;
this.hide();
f.show();
manbufenglin 2008-07-17
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();

this.Hide();

}
试一试
cychris 2008-07-17
  • 打赏
  • 举报
回复
up

110,010

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧