2014-02-27 4 views
0

Я написал простую программу с помощью Visual Studio (C#). Когда я закрываю свою программу (щелкните по Х), форма закрывается, но процесс остается. Мне пришлось закрыть его из диспетчера задач.Как закрыть процесс C#?

Какова команда закрытия процесса? Мой код:

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{      
    e.Cancel = true;   
} 
+3

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.exit(v=vs. 110) .aspx – ilansch

+1

Думаю, вам стоит попробовать найти основную причину проблемы. Почему ваша программа не закрывается при закрытии формы? Есть ли у вас бесконечный цикл где-то, где есть ссылки на 'Application.DoEvents()'? –

+0

@StevenLiekens форма не закрывается, так как он отменяет закрытие процесса? – ilansch

ответ

0

e.Cancel=true предотвратит вашу форму от закрытия, поэтому удалить его.

, если он по-прежнему не работает, попробуйте следующее: использовать метод Application.Exit() на FormClosed случае вместо FormClosing:

Чтобы сделать это, перейдите в окно конструктора формы: нажмите майором + F7 или щелкните правой кнопкой мыши на форме в вашем обозревателе решений и нажмите на Form designer (что-то подобное)

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

Вы должны иметь что-то вроде этого без Application.Exit() метода генерируемых:

private void Form1_FormClosed(object sender, FormClosingEventArgs e) 
{      
    Application.Exit();   
} 
+0

где я должен вставить этот метод? – user3360977

+0

@ user3360977: я отредактировал свой ответ, посмотрим, помогает ли он – Shide

+0

И btw, «e.cancel = true» предотвращает закрытие формы. – Shide

0

e.Cancel = true; означает остановить форму от закрытия. Это основная проблема с вашим кодом.

Вы должны использовать этот параметр, если у вас есть подтверждение, например: «Вы уверены, что хотите закрыть?» если пользователь выбирает «Нет», вы устанавливаете e.Cancel в true.

Просто удалите этот код (или установите Отмена на false), и ваша форма закроется, и если это последнее приложение, оно закончится.

Так что окончательное решение вашей проблемы является простым

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{      
} 
Смежные вопросы