2015-10-22 4 views
1

У меня есть C# Form, где у вас есть Form1, показанный в начале, а когда вы нажимаете Go, вы попадаете в Form2. Form1 скрыт и отображается Form2.Скрытая форма не закрывается

Теперь, когда вы выходите из form2, вся заявка должна быть закрыта. Я использую Application.Exit(), когда нажимаю кнопку выхода. У меня возникают проблемы, если пользователь нажимает X или ALT + F4 или RightClick->Close. Форма закрывается, но скрытая форма останется открытой.

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

Я пробовал form1_Close и Form1_Closing функции, но они, похоже, не работали.

+1

Есть ли какая-то особая причина, по которой вы скрываете форму Form1 и не закрываете ее? – Powerlord

+0

Есть ли возможность вернуться к 'Form1' или закрыть' Form2' и выйти из программы только в качестве опции? –

+0

Просто закройте экземпляр Form1, а не скрывайте его. С помощью [этого кода] (http://stackoverflow.com/a/10769349/17034), чтобы остановить это от завершения вашего приложения. Теперь это просто и безопасно. –

ответ

2

Попробуйте это:

Hide(); 
Form2 form2 = new Form2(); 
form2.Closed += (s, args) => this.Close(); 
form2.Show(); 

закроется Form1 при закрытии Form2. Если пользователь нажимает X или ALT +F4 или RightClick -> Close на Form2Form2 The и скрытой Form1 закроются.

+0

Отлично, что мне нужно! –

-1
~Form2() // destructor 
    { 
     application.exit(); 
    } 

Это будет вызываться, когда вы закроете Form2, как вы указали, вы хотели бы, чтобы это произошло при его закрытии.

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