如果密码错误,重新显示表单

本文关键字:显示 表单 新显示 密码 错误 如果 | 更新日期: 2023-09-27 18:11:17

我有以下代码检查密码/登录和执行其他操作:

public virtual void run()
        {
            if (appInitializer!=null)
            {
                ISecurityManager securityManager = appInitializer.SecurityManager;
                if (securityManager!=null)
                {                   
                    if (securityManager.DoLogin())
                    {
                        RegisterDefaultActionsGroup();
                        InitializePlugins(appInitializer.Plugins);
                        ActionsManager.Inst.ApplySecurity(securityManager, securityManager.CurrentUser);
                        mainForm = new MainForm();
                        mainForm.Text = appInitializer.ApplicationTitle;
                        if (appInitializer.ApplicationIcon != null)
                        {
                            mainForm.Icon = appInitializer.ApplicationIcon;
                        }
                        CorrectFormSizes(mainForm);
                        Context[Constants.MainForm] = mainForm;
                        MenuManager.Inst.FillMenu(DefaultGroups.MAIN_MENU, mainForm.MainMenu, ActionClick);
                        if(appInitializer.IsHaveToCreatePanelInfo) PanelInfoManager.Inst.FillInfo(mainForm);
                        if (appInitializer.IsHaveToCreateToolBar)
                        {
                            MenuManager.Inst.FillToolbar(DefaultGroups.MAIN_TOOLBAR, mainForm.MainToolStrip, ActionClick);                            
                        }
                        mainForm.MainToolStrip.Visible = mainForm.MainToolStrip.Items.Count > 0;
                        NotifyPluginsAboutShowing(appInitializer.Plugins);
                        Application.Run(mainForm);
                    }                    
                }
            }
        }

主要方法是DoLogin。如果返回true,则运行其他操作(填充菜单,创建工具栏等)。
问题是,如果用户输入错误的密码,那么DoLogin返回false,应用程序正在关闭。
我想如果用户输入错误的密码,然后DoLogin(方法内部创建的形式)再次运行。
我如何重写这段代码来实现这一点?
谢谢。

p。Run是我自己的Framework类的成员。在Program.cs文件中有以下代码:

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Framework framework = new Framework(new EArchiveInitializer());
            framework.run();
}

如果密码错误,重新显示表单

为什么不只是while (!securityManager.DoLogin()) { }呢?