日期:2014-05-17  浏览次数:20730 次

WinForm中关于窗体如何隐藏的迷惑
当前程序运行时先加载F1窗体(登录窗体),接着加载F2窗体(菜单框架)。

现在要实现的效果为:先加载F1窗体,判断登录成功才加载F2窗体(这种不会实现,有谁会的可以教教我)

我现在的思路是把F1,F2两个窗体全部加载后,然后隐藏F2窗体,接着判断是否登录成功,如果成功我就显示F2窗体。

缺点在于F1,F2两个窗体全部加载完,然后隐藏F2窗体(这个时候可以明细看出F2窗体出现了一下,然后消失)

怎么解决这种问题呢,求各位给点思路..



------解决方案--------------------
可以在入口中写
C# code

        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
//启动主窗体前,先创建登陆窗体,成功后继续,否则直接退出         
            Application.Run(new Form1());
        }

------解决方案--------------------
上面已经说了

C# code
 LoginForm lf = new LoginForm();//创建登录窗体
            DialogResult dr = lf.ShowDialog();
            if (dr == DialogResult.OK)//登录通过
            {
                Application.Run(new Form1());//加载主窗体
            }

------解决方案--------------------
先加载登录窗体,
登录成功后,就加载主窗体
------解决方案--------------------
启动后值只加载并显示Form1 判断登入成功后加载Form2 Show出来 Form1隐藏 这样可行
------解决方案--------------------
先加载登录窗体,登录后判断是否成功,若成功,关闭登录窗体,执行主界面,否则不关闭登录窗体。
假如Form1是登录窗体,IsLogin是Form1里面的静态变量判断Form1是否登录成功,Form2是主窗体。
在Program中:

Main()
{
Form1 form=new Form1();
form.ShowDialog();
if(Form1.IsLogin)
{
Form2 form2=new Form2();
form2.ShowDialog();
}
  
}





------解决方案--------------------
最简单的方法 不用在代码里改,

F2界面的Visible属性直接设为false。

然后show出2个窗体,

再判断登录是否成功,

最后修改F2的Visible属性为true