重新启动应用程序并重定向到 C# 中的特定表单

Posted

技术标签:

【中文标题】重新启动应用程序并重定向到 C# 中的特定表单【英文标题】:restart application and redirec to a specific form in C# 【发布时间】:2016-09-20 09:48:08 【问题描述】:

我正在使用 C# 开发一个 Windows 应用程序。

它有 4 种形式。

    启动画面, 登录屏幕, 主菜单和 用户详细信息表单 显示在主菜单表单内,

还有一个按钮名称为“注销”。我尝试在注销按钮内使用Application.restart() 方法,但它会在登录屏幕之前加载启动屏幕。 我关心的是当我单击注销按钮时如何显示登录屏幕页面。

注意:

userdetails ud = new userdetails();
ud.ShowDialog();

用于在主菜单表单中显示用户详细信息表单的代码。

谢谢 伊山

【问题讨论】:

在很大程度上取决于您构建登录的方式,但是,通常情况下,恕我直言,您只会使登录无效并重新显示登录屏幕,并且在打开下一个表单成功时,失败要么重试,要么退出 【参考方案1】:

你应该做的是创建一个安全管理器类来保存用户凭据/安全令牌,任何需要安全检查的请求都必须通过你的安全管理器。在此类上,当没有详细记录时发出安全请求时会触发一个事件,

例如

public class SecurityMonitor

    public string Usernameget;set;
    public string Passwordget;set;
    public event LoginEventHandler LoginRequired;
    public bool CheckSecurity()
    
        if(Username==null)
        
            LoginRequired?.Invoke(this,new LoginEventArg());
            //wait logic here
            
        return CheckAccess();
    

    public void Logout()
    
        Username= null;
        Password= null;
    

然后在你的主窗体中你有

SecurityMonitor security = new SecurityMonitor();
security.LoginRequired += (s,e)=> ud.ShowDialog();

这将在需要凭据时将用户重定向到登录屏幕,而无需重新启动应用程序

【讨论】:

以上是关于重新启动应用程序并重定向到 C# 中的特定表单的主要内容,如果未能解决你的问题,请参考以下文章

Django:HTML表单提交调用函数并重定向到另一个页面

Django Createview根据外键的id保存表单并重定向到页面

重定向到同一页面php后避免表单重新提交[重复]

将表单提交到电子邮件并重定向不起作用

如何在我的应用程序中打开窗口并重定向到谷歌播放中的另一个应用程序下载页面

如何检测回访者并重定向到特定 URL? [关闭]