2016-08-24 6 views
-2

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

Я пробовал использовать мероприятие ниже, да, это мешает мне закрыть основную форму, но когда я подписал его, он сделал то же самое с моей формой входа, которую я не хотел. Есть какой-либо способ сделать это?

private void Form1_Closing(object sender, CancelEventArgs e) 
{ 
    e.Cancel = true; 
} 
+0

Вы можете оставить флаг где-то что указывает на то ли выписался пользователь. Установите флажок «true», когда пользователь выйдет из системы. Затем в событии 'Form1_Closing'' e.Cancel = flag; '. –

+0

Извините, но этот «флаг» для меня новичок (уровень начального уровня). Я хотел бы услышать, если вы сможете объяснить мне, как я могу применить это к своим формам. Заранее благодарю вас. –

+1

Это может быть 'public static bool SignedOut;' в классе 'Program' в' Program.cs' и 'e.Cancel = Program.SignedOut;' –

ответ

1

Я полагаю, что вы используете LoginForm как диалог (ShowDialog), использование DialogResult.Ok только тогда, когда пользователь входит в успешных

.... 

private voif logoutButton_click(object sender, EventArgs e) 
{ 
    _logged = false; 
} 

..... 

private void loginButton_click(object sender, EventArgs e) 
{ 
    LoginForm _loginForm = new LoginForm(); 
    if(_loginForm.ShowDialog() == DialogResult.Ok) 
    { 
     _logged = true; 
    } 
} 

...... 

private void Form1_Closing(object sender, CancelEventArgs e) 
{ 
    if(!_logged) 
     e.Cancel = true; 
} 
+0

Не совсем, но я попробую тоже. Спасибо за ответ, сэр. –

Смежные вопросы