窗体关闭问题?

das521 2008-07-17 08:58:36
我的项目里有两个窗体,其中一个窗体是通过添加窗体,
使用代码
form2 f=new form2();
在建项目是的窗体上放了一个button,通过点击button的Click事件,想把原来的那个窗体关掉,然后f.Show();
怎么样实现?
问题比较基础,大家可别笑我,呵呵
...全文
133 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
项目名称:[精仿]360安全卫士-10.30更新(CSkin Demo) 界面库版本号:10.30 最新版本 下载内容: 精仿360安全卫士源码一份, 可引用至工具箱最新版CSkin.dll一份 实现功能: 1.发光标题。 2.直角边框和阴影。 3.360安全卫士主界面模仿。 4.多系统支持,不需要win8系统,即可实现win8风格的360。 5.自定义控件的美化使用。 界面库更新文档: CC2013-10.30 1.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。 2.SkinTabControl标签中添加菜单箭头,可点击展开菜单。 3.SkinTabControl添加标签关闭按钮。 4.修复部分中文乱码问题。 5.优化好友列表右键菜单。 6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件中可以 e.参数 来判断。 7.增加360安全卫士-DEMO案例。 8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。 9.各种细节BUG优化。 CC2013-10.11 1.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。 2.添加SkinAnimator,通用动画控件。 3.添加Html编辑器控件 4.修复SkinButton图标和文本相对位置的BUG CC2013-9.26 1.优化好友列表CPU占用 2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC 3.优化标题绘制模式,新添标题绘制模式属性。 4.新添标题偏移度属性。 5.加入圆形进度条控件:ProgressIndicator。 CC2013-9.5.2 1.优化截图控件,截图工具栏加入新功能。 2.解决个人信息卡和天气窗体显示后不会消失的问题。 3.各种细节BUG优化。 CC2013-9.5.1 1.解决贴边左右隐藏的BUG。 2.解决窗体点击事件不能触发的问题。 3.优化SkinButton继承父容器背景色的代码。 4.解决SkinButton异常错误。 CC2013-9.3 1.好友列表右键菜单没反应问题。 2.新增美化控件SkinDatagridview。 3.密码软件盘回删不了文字问题。 4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。 5.部分细节调优。 小编:下载不要分,DEMO教你如何熟练使用CSkin界面库美化自己的窗体。 友情链接: http://bbs.csdn.net/topics/390510544 (精仿QQ2013局域通讯) http://download.csdn.net/detail/lyx_520/5710799 (C#实现Win8窗体)

110,927

社区成员

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

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

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