C # Форма X Кнопка нажата - PullRequest
       1

C # Форма X Кнопка нажата

4 голосов
/ 17 сентября 2010

Как я могу узнать, закрыта ли форма, нажав кнопку X или (this.Close ())?

Ответы [ 4 ]

19 голосов
/ 17 сентября 2010

форма имеет событие FormClosing с параметром типа FormClosingEventArgs.

private void Form1_FormClosing( object sender, FormClosingEventArgs e )
{
    if ( e.CloseReason == CloseReason.UserClosing )
    {
        if ( MessageBox.Show( this, "Really?", "Closing...",
             MessageBoxButtons.OKCancel, MessageBoxIcon.Question )
            == DialogResult.Cancel ) e.Cancel = true;
    }
}
3 голосов
/ 17 сентября 2010

Вы можете удалить 'X' в целом?

Одним из свойств формы является "ControlBox", просто установите для него значение false

1 голос
/ 22 ноября 2013

Если вы хотите установить для возвращаемого поля значение NULL, как вы делаете, когда нажимаете Отмена в вашей форме:

private void Form1_FormClosing( object sender, FormClosingEventArgs e )
{
    if ( e.CloseReason == CloseReason.UserClosing )
    {
        returnfield = null;
        this.close();
    }
}
0 голосов
/ 04 февраля 2016

Для OnFormClosing значение FormClosingEventArgs.CloseReason равно UserClosing или кнопке 'X' или form.Close(). Мое решение:

//override the OnFormClosing event
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.ApplicationExitCall)// the reason that you need
                base.OnFormClosing(e);
            else e.Cancel = true; // cancel if the close reason is not the expected one
        }
//create a new method that allows to handle the close reasons
        public void closeForm(FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing) this.Close();
            else e.Cancel = true;
        }

  //if you want to close the form or deny the X button action invoke closeForm method
    myForm.closeForm(new FormClosingEventArgs(CloseReason.ApplicationExitCall, false));
                              //the reason that you want ↑

В этом примере кнопка закрытия (X) не закрывает форму

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...