使用Application.Exit退出应用程序而不显示GUI

时间:2011-04-27 18:57:38

标签: c# winforms exit

要点: 如果应用程序未使用指定的用户帐户运行,则应用程序退出但仍会创建GUI。我希望它完全退出

详细说明: 我原以为我下面的代码会起作用。它检查用户名的特定属性,如果没有,则应用程序关闭。简单。问题是,即使用户名不包含该属性,应用程序仍会创建GUI。有什么想法吗?

这段代码是我的主要方法。这是一个窗体。

代码:

public ProgramMain()
{
    String runningUser = Environment.UserName;
    if (!runningUser.Contains("asdf"))
    {
        MessageBox.Show("You must run this application with your asdf account.");
        Application.Exit();
    }
    else
    {
        InitializeComponent();
    }
}

4 个答案:

答案 0 :(得分:5)

您正在编写表单而不是program.cs中的Main()事件。如果在实际实例化表单之前退出,则无法获得GUI。

答案 1 :(得分:5)

在Main的Program.cs文件中,您将看到Application.Run()如果在执行此行代码之前进行检查。然后,如果用户不正确,只需跳过该行。

Application.Run()是启动应用程序运行循环的行。

如果永远不会命中Run Loop并退出main。应用程序将退出。

答案 2 :(得分:1)

你太过分了。 InitializeComponent看起来像你已经在Windows窗体中。然后你已经创建了一个窗口。在创建表单之前将检查放在main方法中,然后不显示任何内容。 您可以中断调试器并检查调用堆栈。搜索代码来自项目的第一种方法。把这个方法放入检查中你应该没问题。

此致,   Alois Kraus

答案 3 :(得分:0)

看起来你正在控件的构造函数调用中执行它。尝试在Program类的Main方法中执行此检查。