Предположительно, проблема в том, что вы хотите, чтобы окно закрывалось, когда приложение существует, но не в том случае, если пользователь пытается закрыть его вручную.
Для этого вам потребуется ручное переопределение, скажем, переменная с именем allowShutdown
, и метод, который может установить это, когда MdiParent закрывается.
private void Form_Closing(object sender, EventArgs e)
{
if( !allowShutdown) e.Cancel = true;
}
public void ForceShutdown()
{
allowShutdown = true;
Close();
}
А потом в родительской форме:
private void Form_Closing(object sender, EventArgs e)
{
if( childForm != null ) childForm.ForceShutdown();
}
Это предполагает, что вы сохраняете ссылку на дочернюю форму в родительской форме при ее создании. Объедините это с возможностью скрыть кнопку закрытия, упомянутую в другом посте, и у вас должно получиться рабочее решение.