2013-07-16 23 views
0

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

ответ

0

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

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); 
} 

Это более эффективно, так как загрузка формы пропускается вообще ,

0

Я не буду комментировать то, что вы делаете ...

... но, чтобы закрыть форму проста:

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(); 
     } 
    } 
0

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

this.Close(); 
Смежные вопросы