日期:2014-05-19  浏览次数:20961 次

.net windows程序,如何实现打开一个窗体后关闭原来的窗体?
登录成功后,弹出主窗体,需要关闭原来的窗体.如何实现?

------解决方案--------------------
启动控制台应用程序
application.run(loginform());
applicaton.run(mainform());
------解决方案--------------------
主窗体是哪个?
可以hide();不过不是最好的办法,
也可以在主窗体的Form_Load()
{
frmLogin f=new frmLogin();
f.show();
}
------解决方案--------------------
登陸窗口OK后:
this.Hide();
frmmain frmMain=new frmmain();

frmMain.ShowDialog();
this.Close();
------解决方案--------------------
直接在登陆窗口验证函数中

如果成功

this.close();
this.dispose();

frmmain frm=new frmmain();
frm.show();
------解决方案--------------------
父窗口关闭好像都会关闭的吧~~
hide()最后用啊~最后关闭是一起关闭已经hide的~
------解决方案--------------------
用ApplicationContext

------解决方案--------------------
FrmLogin是登录窗体,FrmMain是主窗体:

在static void Main()中:
FrmLogin frmLogin = new FrmLogin();
frmLogin.ShowDialog();
if (frmLogin.DialogResult.Equals(DialogResult.OK))
{
Application.Run(new XFrmMain());
}

在FrmLogin窗体的登录事件中:
登录成功:
this.DialogResult = DialogResult.OK;
this.Close();
登录失败:
MessageBox.Show( "Login Error! ");
this.DialogResult = DialogResult.None;
------解决方案--------------------
frmmain frm=new frmmain();
frm.show();
this.hide()
------解决方案--------------------
登陆窗口都没用了,还hide起来干吗?当然要销毁掉
又不是用的银河计算机,一点都不考虑性能。
------解决方案--------------------
patrickpan(离别钩) 这个好
------解决方案--------------------
FrmLogin是登录窗体,FrmMain是主窗体:

在static void Main()中:
static void Main()
{
Application.Run(new FrmMain());

}
在FrmMain的构造函数中添加:
FrmLogin objFrmCon = new FrmLogin();
objFrmCon.ShowDialog();

在FrmLogin登陆操作后添加this.Close()即可。
------解决方案--------------------
mark
------解决方案--------------------
up
------解决方案--------------------
CLOSE掉呀。。这有什么问题或者BUG会出现?
------解决方案--------------------
patrickpan(离别钩)这个比较好