Как я добавляю код к кнопке выхода в форме c#?

В IOS5 вы можете использовать NSJSONSerialization для сериализации JSON.

NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

7
задан adeena 24 May 2009 в 18:14
поделиться

6 ответов

Использование события FormClosing должно перехватить любой способ закрытия формы.

12
ответ дан 6 December 2019 в 09:21
поделиться

В представлении «Дизайн» для вашей формы в окне «Свойства» нажмите кнопку «События» и прокрутите вниз до событий «FormClosed» и «FormClosing».

FormClosed вызывается после формы закрывается.

FormClosing вызывается перед закрытием формы, а также позволяет отменить закрытие, оставив форму открытой:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}
7
ответ дан 6 December 2019 в 09:21
поделиться

FormClosing / FormClosed позволяет вам наблюдать за событием для этой формы, которое может совпадать с выходом из приложения. Однако есть еще одно событие, которое вы можете подключить, под названием Application.ApplicationExit.

В методе Main:

Application.ApplicationExit += Application_ApplicationExit;

...

private static void Application_ApplicationExit(object sender, EventArgs e) {

  // do stuff when the application is truly exiting, regardless of the reason

}
0
ответ дан 6 December 2019 в 09:21
поделиться

Если вы хотите спросить пользователя: «Вы действительно хотите закрыть эту форму?», Используйте FormClosing , где вы можете установить Cancel = True , и форма останется открытой.

Если вы хотите закрыть какой-либо ресурс только тогда, когда форма определенно закрыта, используйте событие FormClosed .

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

1
ответ дан 6 December 2019 в 09:21
поделиться

Этот код фиксирует пользователя, щелкающего «X» или использующего Alt-F4 в форме, чтобы вы могли что-то сделать. Мне пришлось использовать это, потому что мне нужно было действие для вызова моего закрывающего события, и оно не вызывало бы его при использовании FormClosing Event из-за гонок.

/// <summary>
/// This code captures the 'Alt-F4' and the click to the 'X' on the ControlBox
/// and forces it to call MyClose() instead of Application.Exit() as it would have.
/// This fixes issues where the threads will stay alive after the application exits.
/// </summary>
public const int SC_CLOSE = 0xF060;
public const int WM_SYSCOMMAND = 0x0112;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
    if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
        MyClose();

    base.WndProc(ref m);
}
0
ответ дан 6 December 2019 в 09:21
поделиться

Используйте Closed-Event вашей winform.

0
ответ дан 6 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: