winform登录成功后打开主窗体的合理写法

    在winform开发中,经常有登录成功后打开主窗体等类似的需求,如果象下面这样写:

//登录成功后

frmMain.Show();//打开主窗体

this.Hide(); //隐藏登录窗体

则登录窗体没有被销毁,仍占用着系统资源!

可以通过以下方法解决:

思路:在Main方法中打开主窗体,然后在主窗体的构造函数中打开登录窗体。

1: 登录窗体的设计

    在“登录”按钮的Click事件处理程序中,判断登录成功后:

      this.DialogResult = DialogResult.OK;

      this.Close();

2: 主窗体的设计

   (1) 准备一个打开登录窗体的方法

       private bool UserLogin()
        {
            FrmLogin frmLogin = new FrmLogin();
            try
            {              
                DialogResult result = frmLogin.ShowDialog();
                if (result == DialogResult.OK)
                { 
                    return true;
                }
                else
                {
                    return false;
                }
            }
            finally
            {
                frmLogin.Dispose();
            }
        } 

    (2) 修改构造函数:

       public FrmMain()
        {
            if (!UserLogin())
            {
                //登录被取消退出系统,这一句很重要 
                System.Environment.Exit(0);
            }
            InitializeComponent(); 
        }

 

注:原文: http://hi.baidu.com/mlstars/blog/item/b8c132d0f8a66c88a1ec9cf0.html 的第一种方法,那里还有另一种方法哟……

 

 

 

  

posted @ 2011-01-12 10:21  男儿当自强IT  阅读(1639)  评论(0编辑  收藏  举报