C # Закрывающий обработчик событий не работает

1

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

Форма главного меню открыта, но минимизируется, когда пользователь использует текущую форму.

Мой обработчик события закрытия;

private void frm_createCust_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            e.Cancel = true;
            MessageBox.Show("Closing");
            frm_MainMenu frm_MainMenu = new frm_MainMenu();
            frm_MainMenu.WindowState = FormWindowState.Normal;
            frm_MainMenu.Show();
            //this.Close();            
        } 

Заранее спасибо.

Теги:
event-handling
formclosing

2 ответа

4
Лучший ответ

Детальная форма не должна пытаться повлиять на ее родителя, когда она закрыта, а родитель должен обрабатывать эту логику и быть тем, кто применяет обработчик события в своем коде:

//somewhere in your main form code:
SomeChildForm child = new SomeChildForm();
child.FormClosing += (s, args) =>
{
    WindowState = FormWindowState.Normal;
    Show();
};
child.Show();
  • 0
    Да, это лучшее решение.
  • 0
    К сожалению, я допустил ошибку в конструкторе this.FormClosing + = new System.Windows.Forms.FormClosingEventHandler (this.frm_createCust_FormClosing); Я получил это работает, спасибо, в любом случае, ребята :)
Показать ещё 1 комментарий
0

Это то, что вы хотите? Являются ли формы в отношениях между родителями и детьми?

this.ParentForm.WindowState = FormWindowState.Normal;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню