C# 如何取消表格加载?

C# 如何取消表格加载?,c#,xcode,forms,stream,messagebox,C#,Xcode,Forms,Stream,Messagebox,如何编写创建代码的应用程序。我想,如果一个用户打开了应用程序,而另一个用户不可以使用该应用程序,则可以获得一个带有使用该应用程序的用户名的MessageBox。为此,我使用了一个带有try-catch的Form\u-Load事件,它可以正常工作。第二个用户获得一条消息,其中包含另一个用户的名称,但表单在此之后打开。我希望此邮件后表单不会打开 我的代码: private void Form1_Load(object sender, EventArgs e) { try {

如何编写创建代码的应用程序。我想,如果一个用户打开了应用程序,而另一个用户不可以使用该应用程序,则可以获得一个带有使用该应用程序的用户名的
MessageBox
。为此,我使用了一个带有try-catch的
Form\u-Load
事件,它可以正常工作。第二个用户获得一条消息,其中包含另一个用户的名称,但表单在此之后打开。我希望此邮件后表单不会打开

我的代码:

private void Form1_Load(object sender, EventArgs e)
{
    try
    {
        var stream = File.Open("lock", FileMode.OpenOrCreate,FileAccess.Read);
        global_stream = stream;

        string username = User.GetUsername();
        string machine =  Computer.GetMachineName();

        TextDatei datei = new TextFile();

        datei.WriteFile("user_log", "Username: " + username + " Invoicennumber: "
            + machine); 

        CreateCode();

    }
    catch (Exception)
    {
        TextFile file = new TextFile();
        string info = datei.ReadFile("user_log");

        MessageBox.Show(info);

        Application.Exit();
    }
}

我会使表单本身的加载有条件,而不是取消它:

try
{
    // Do your validation stuff here...

    // The form will only show if the validation didn't throw.
    Application.Run(new Form1());
}
catch (Exception)
{
    TextFile file = new TextFile();
    string info = datei.ReadFile("user_log");

    MessageBox.Show(info);
}
这会更有效,因为表单的加载会被完全跳过。

我不会对您正在做的事情发表评论

…但关闭表单很简单:

    private void Form1_Load(object sender, EventArgs e)
    {                       
        Boolean someCondition = true; //whatever check you're doing

        if (someCondition)
        {
            MessageBox.Show("Some Condition Met");
            this.Close();
        }
        else
        {
            this.InitialiseTheFormEtc();
        }
    }

有一个建议,您可以在Init()本身执行必要的加载,然后在那里关闭表单本身,而不是Load()。这是最好的办法

this.Close();