要点: 如果应用程序未使用指定的用户帐户运行,则应用程序退出但仍会创建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();
}
}
答案 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方法中执行此检查。