登录窗体为主线程窗体时实现重登录的一个困难

Posted windy3417

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录窗体为主线程窗体时实现重登录的一个困难相关的知识,希望对你有一定的参考价值。

一、在主界面窗体中调用已经隐藏的主线程登录窗体,输入用户名与密码时如果正确,虽然代码中写的是再次隐藏

登录窗体,但主线程仍会关闭,debug时可跟踪到调用了dipose方法关闭登录窗体;

二、如点取消按钮,登录窗体也会关闭,debug时可跟踪到调用了dipose方法关闭登录窗体。

 

 if (new UserService().loginCheckWithSqlparameters(txt_userID.Text, pwd))
                    {
                        CurrentUser.userID = txt_userID.Text;
                        //AuthorizationEventArgs a = new AuthorizationEventArgs();
                        //a.userAndPwdRight = true;
                        //onAuthorizPass(a);
                        DialogResult = DialogResult.OK;

                        //if (loginSuccessFlag==true)
                        //{

                        //}
                        //Frm_main f = new Frm_main();

                        //f.Show();
                        //loginSuccessFlag = true;

                        //登录成功后隐藏登录窗体
                        //this.Hide();
                        ////主窗体关闭后登录窗体也关闭
                        //f.FormClosed += closeLoginForm;
                        ////主窗体点击重登录时,调出登录窗体
                        //f.重登录ToolStripMenuItem.Click += 重登录ToolStripMenuItem_Click;
                    }

 

 三、如何实现二次登录

如果不把登录窗体做为主线程窗体,那么要实现重登录,只能开启一个新进程,然后关闭本次进程,具体如何实现,待定。

   [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Frm_login frm_Login = new Frm_login();

            frm_Login.ShowDialog();
            if (frm_Login.DialogResult == DialogResult.OK)
            {
                Application.Run(new Frm_main());
            }
            else
            {
                Application.Exit();
            }


        }

    

 

以上是关于登录窗体为主线程窗体时实现重登录的一个困难的主要内容,如果未能解决你的问题,请参考以下文章

delphi 如何改变主窗体

winform窗体如何实现自动登录功能?

WPF菜鸟问题:在登录窗体有Textbox1用于输入用户名,在主界面窗体有一个label1

winform程序登陆后关闭登录窗体

关于winform登录窗体的文本框问题

wpf登录窗体跳转怎么做