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

一个很怪异的问题。
winform程序,我通过login窗体进入main窗体。当账户密码正确后隐藏login窗体。
我使用了this.Hide();结果有的时候这个窗体可以隐藏,有的时候又不能隐藏。一般情况下我第一次开程序都不能隐藏,我把程序关了在开就没有问题了。
后来我使用了this.Visible   =   false;然后一样。
请问这是什么原因!!
谢谢

------解决方案--------------------
mark
------解决方案--------------------
建议楼主不使用Hide, 而是在Main函数中处理主画面的打开。
static void Main()
{
LoginForm loginForm = new LoginForm();
loginForm.ShowDialog();

MainForm mForm = new MainForm();
Application.Run(mForm);
}
------解决方案--------------------
if(myDr.Read())
{
try
{
this.Hide();
Form3 main = new Form3();
main.ShowDialog();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
else
{
MessageBox.Show( "此用户不存在 ");
}
myDr.Close();


这种方式是可以的....
但建议使用楼上的..
------解决方案--------------------
推荐lmtz(忽隐忽现) 的方法
------解决方案--------------------
static void Main()
{
LoginForm loginForm = new LoginForm();
loginForm.ShowDialog();
if(valid){
MainForm mForm = new MainForm();
Application.Run(mForm);}
}
这样可以的,只是没有样式风格了
------解决方案--------------------
我最早用楼主的这种方法。
没有出现楼主说的情况。

最后还是改成3楼的这种了,只是3楼忘写了一个判断登录窗体的返回值而已。
------解决方案--------------------
补充一下:
根据这个返回值判断是否应该运行主窗体。