C# Winform系统登录(登入/登出)架构设计
作者:C/S框架网  发布日期:2011/06/14 14:52:55
  C# Winform系统登录(登入/登出)架构设计

C# Winform系统登录(登入/登出)架构设计



一个简单的Login to MainForm架构,该示范程序演示了登录功能的设计,登入时状态显示,系统登出及初始化主窗体等功能,仅供参考。



登录界面:


贴图图片



主窗体:


贴图图片



部分源码如下:



Program.cs


C# Code:

[STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

 

            //首先打开登陆窗体,登陆成功后初始化MDI主窗体

            if (frmLogin.Login())

            {

                frmMain.CurrentMainForm.Show();//显示主窗体

                Application.Run();

            }

            else//登录失败,退出程序

                Application.Exit();

        }

 


//来源:C/S框架网(www.csframework.com) QQ:1980854898



Login


C# Code:

private void btnLogin_Click(object sender, EventArgs e)

        {

            try

            {

                if (false == this.ValidateInput()) return;

 

                this.Cursor = Cursors.WaitCursor;

                this.SetButtonEnable(false);

                this.Update();//必须

                this.ShowLoginInfo("正在验证用户名及密码");

                if (SystemSecure.Login(txtUID.Text, txtPWD.Text)) //调用系统安全管理模块登录方法

                {

                    //

                    //授权成功, 下载用户权限数据.....

                    //

                    //登录成功,初始化主窗体,初始化进度在登录窗体的状态栏显示

                    IMainForm MDI = frmMain.CreateMainFormInsatance();

                    //MDI.InitUserInterface(new StatusBarMessage(lblLoading));

                    MDI.InitUserInterface(new LabelMessage(label3));

 

                    this.DialogResult = DialogResult.OK; //成功

                    this.Close(); //关闭登陆窗体

                }

                else

                {

                    this.ShowLoginInfo("登录失败,请检查用户名和密码!");

                    Msg.Warning("登录失败,请检查用户名和密码!");

                }

            }

            catch

            {

                this.SetButtonEnable(true);

                this.ShowLoginInfo("登录失败,请检查用户名和密码!");

                Msg.Warning("登录失败,请检查用户名和密码!");

            }

 

            this.Cursor = Cursors.Default;

        }


 


MainForm.InitUserInterface


C# Code:

public void InitUserInterface(IMsg status)

        {

            //

            //在这里初始化主窗体,如:加载模块,生成菜单,下载公共缓存数据等操作...

            //

            try

            {

                this.SuspendLayout();

 

                status.ShowMessage("正在初始化用户界面...");

 

                status.ShowMessage("正在加载模块...");

 

                status.ShowMessage("正在生成菜单...");

 

                status.ShowMessage("正在下载公共缓存数据...");

 

                status.ShowMessage("加载主窗体完成.");

 

                this.ResumeLayout();

            }

            catch (Exception ex)

            { Msg.ShowException(ex); }

        }




MainForm.menuLogout_Click


C# Code:

private void menuLogout_Click(object sender, EventArgs e)

        {

            if (!Application.AllowQuit) return; //程序不允许退出

 

            if (!Msg.AskQuestion("真的要登出吗?")) return;

 

            try

            {

                if (this.AnyDataChanged())

                {

                    Msg.Warning("系统检测到有数据窗体没有保存,不能登出!");

                    return;

                }

 

                this.Hide();

                if (frmLogin.Login())

                {

                    frmMain.DisposeOldForm();//关闭旧的主窗体,释放内存

                    frmMain.CurrentMainForm.Show();//显示登录窗体               

                }

 

                GC.Collect();

            }

            catch (Exception ex)

            {

                Msg.ShowException(ex);

            }

        }





C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务



Source Code:
点击下载附件 点击下载附件 (如下载失败,请邮件通知我们寄回给您,或QQ:23404761留言.)
上一篇 下一篇