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 ,是我自己定义的一个错误提示对话框哦,猿们可以自己定义一个,偶把自己的贴出来

Winform登录、控制软件只运行一次、回车登录这个里面有图标、标题lblTitle和错误信息lblMsg,都是Lable,给赋值就可以了哦。

 

你可能感兴趣的:(WinForm)