2016-03-14 2 views
0

Хорошо, у меня есть вопрос о Form Controlbox. Мне было интересно, можно ли изменить или добавить то, что делает кнопка выхода в форме.изменение блока управления на форме при выходе

Я могу легко свести к минимуму, максимизировать и выйти из формы без проблем. Но это то, с чем я столкнулся.

Мое приложение имеет логин доступа. После входа в систему он попадает в основную форму. При нажатии кнопки выхода из системы она возвращается к форме входа в систему.

Однако, если вы нажмете кнопку выхода, она выйдет из основной формы, и программа все еще работает, но никак не может привести форму регистрации.

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

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

Я думаю, что было бы проще изменить или добавить кнопку выхода, чтобы вернуться к форме входа в систему. Это возможно?

+0

Это событие FormClosed, которое вы можете использовать. – Blorgbeard

+0

Я думал, что могу что-то сделать вдоль линий, поскольку состояния формы сводятся к минимуму, максимизируют. Однако основной вид формы, который я понял, может быть изменен. Как я могу использовать событие FormClosed? – ivansystems

+0

Просто обработайте событие и делайте то, что вы делаете, когда нажата кнопка выхода из системы. Вы можете найти событие FormClosed в дизайнере, свойства формы, на вкладке событий. См. Https://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosed.aspx – Blorgbeard

ответ

1

Извлеките логику из события нажатия кнопки в отдельный метод.

private void button1_Click(object sender, EventArgs e) 
{ 
    OverrideFormExit(); 
} 

private void OverrideFormExit() 
{ 
    // execute the code that was previously in button1's click event 
} 

Теперь вы можете подписаться на тот же самый метод Закрытому события вашей формы, так что он выполняется, когда пользователь закрывает форму.

Например, поместите следующий в конструкторе вашей формы:

FormClosed += (s, e) => OverrideFormExit(); 

В качестве альтернативы, вы можете подписаться на закрытое мероприятие главной формы внутри Логиниться, когда экземпляр главной формы. Я предполагаю, что ваш код выглядит здесь, очевидно.

private void ShowMainForm() 
{ 
    FormMain frmMain = new FormMain(); 
    frmMain.Show(); 
    frmMain.FormClosed += (s, e) => this.Show(); 
    this.Hide(); 
} 
+0

Грант вы нажали на мою Visual Studio ..lol .. Код близок к тому, что у меня есть. – ivansystems

+0

Возможно, это может быть, если предположить, что вы показываете новую форму, а затем скрываете форму входа. :) –

+0

Моя кнопка выхода из системы используется.private void btnlogOut (..) this.Close(); Вход lg = new Login(); lg.Show(); Я хочу, чтобы основной выход формы (красный x) делал то же самое – ivansystems

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