zoukankan      html  css  js  c++  java
  • Winform登录、控制软件只运行一次、回车登录

    Winform登录对很多程序猿来说都有些困惑,登录进入主窗体后要销毁登录窗体,而不是隐藏哦,怎么实现呢?

     先贴一段Program.cs的代码

     static void Main()
            {
                Mutex mutex = new Mutex(false, "ThisShouldOnlyRunOnce");
                //判断互斥体是否使用中。上下这两行代码判断程序只运行一次
                bool Running = !mutex.WaitOne(0, false);            
                if (!Running)
                {
                    try
                    {                    
                        Application.EnableVisualStyles();
                        Application.SetCompatibleTextRenderingDefault(false);
                //登录窗体 LoginForm lf
    =new LoginForm(); lf.ShowDialog(); if (lf.DialogResult == DialogResult.OK)//这一行很重要,如果登录成功,登录窗体要返回一个结果DialogResult.OK,这样就可以运行到主窗体MainForm了哦。 { Application.Run(new MainForm(LoginForm.LoginUser)); } } catch (Exception e) { ErrorForm ef = new ErrorForm(); ef.Text = "错误"; ef.lblTitle.Text = "程序提示"; ef.lblMsg.Text = "抱歉,程序突然终止" + e.Message; ef.ShowDialog(); Application.Exit(); } } else { ErrorForm ef = new ErrorForm(); ef.Text = "提示"; ef.lblTitle.Text = "运行提示"; ef.lblMsg.Text = "程序已经运行,请勿重复运行。"; ef.ShowDialog(); Application.Exit(); } }

    再贴一段登录窗体的代码

           //登录按钮事件
            private void btnLogin_Click(object sender, EventArgs e)
            {
                LonginFunction();   //登录方法      
            }
            //密码框输入完后直接回撤登录,要写密码框的KeyDown事件哦
            private void textBoxPwd_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)//回车键
                {
                    LonginFunction();//登录方法
                }
            }
            private void LonginFunction()
            {
                string username = textBoxSysMember.Text.Trim();
                string Pwd = textBoxPwd.Text.Trim();
                ErrorForm ef = new ErrorForm();
                if (string.IsNullOrEmpty(username))
                {
                    ef.lblTitle.Text = "登录错误:";
                    ef.lblMsg.Text = "必须填写用户名";
                    ef.ShowDialog();
                }
                else
                {
    
                    if (string.IsNullOrEmpty(Pwd))
                    {
                        ef.lblTitle.Text = "登录错误:";
                        ef.lblMsg.Text = "必须填写密码";
                        ef.ShowDialog();
                    }
                    else
                    {
                        // 当然这里可以写成到数据库查询的,偶这里是写死了哦
                        if (username == "admin")
                        {
                            if (Pwd == "121")
                            {                           this.DialogResult = DialogResult.OK;//这个地方就是登录成功后要返回的值哦
                                this.Close();
                            }
                            else
                            {
                                ef.lblTitle.Text = "登录错误:";
                                ef.lblMsg.Text = "用户密码错误";
                                ef.ShowDialog();
                            }
                        }
                        else
                        {
                                ef.lblTitle.Text = "登录错误:";
                                ef.lblMsg.Text = "用户密码错误";
                                ef.ShowDialog();
                         } 
    }
    }
    }

    这些代码里都出现了一个错误框ErrorForm ,是我自己定义的一个错误提示对话框哦,猿们可以自己定义一个,偶把自己的贴出来

    这个里面有图标、标题lblTitle和错误信息lblMsg,都是Lable,给赋值就可以了哦。

  • 相关阅读:
    treeview 的动态的绑定
    数据库组件
    webconfig,form验证存角色
    treeView
    web.config 的读写与配置
    .net 开发精华
    asp.net
    在ASP.NET中实现AJAX
    验证js
    用js将form表单同时提交到两个不同页面的方法
  • 原文地址:https://www.cnblogs.com/yieryi/p/4599710.html
Copyright © 2011-2022 走看看