Как я могу отменить Form_Load?

Как мне написать приложение, которое создает код. Я хочу, чтобы пользователь открыл приложение, а другой пользователь не может использовать приложение и получить MessageBox с именем пользователя, который использует приложение. Для этого я использую Form_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();
    }
}

3 ответа

Один совет для вас: вы можете выполнить необходимую загрузку в самом Init() и закрыть там саму форму, чем Load(). С этим лучше пойти.

this.Close();

Я бы сделал загрузку самой формы условной вместо ее отмены:

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();
        }
    }
Другие вопросы по тегам