A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈子斌 中级黑马   /  2012-7-12 10:31  /  1685 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我做了一个登陆界面,在登陆的时候打开另一个界面,
NewForm fm=new NewForm()

this.Hide();     

fm.Show();        
用这种方法的话其他界面还是打开的,只是隐藏了,还是会占内存,有没有一种方法先关闭当前界面后再打开新界面啊,求指导            

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

4 个回复

正序浏览
我做登录的时候首先启动的是主窗体,并且主窗体一启动就隐藏起来,
然后弹出登录窗体,如果登录成功,关掉登录窗体,再将主窗体显示出来。
这样就不会有一个永远占用内存的隐藏的窗体了。
回复 使用道具 举报
本帖最后由 黑马杨凯 于 2012-7-12 15:32 编辑

首先你应将首先标记一下登陆是否成功,然后窗体1关闭,运行this.Close()或者this.Dispose(),至于窗体2的显示与否,你可以看一下程序的program.cs文件,在main()方法里判断(设置一个全局变量标记一下),如果密码正确的话,运行Application.Run(new Form2());即在你的登陆窗体结束后,运行窗体2

    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            if(登陆成功)
            {
                  Application.Run(new Form2());
            }

        }
    }
回复 使用道具 举报
如果是启动窗体的话 关掉就会使整个系统退出了
回复 使用道具 举报
this.Close();// 采用Close()方法解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马