закрытие формы выигрыша, когда в datagridview есть ошибки проверки - PullRequest
0 голосов
/ 05 января 2012

Я использую набор типизированных данных в приложении winforms, .net 3.5 (VS 2010). Форма имеет DataGridView. В событии FormClosing я прошу пользователя сохранить изменения. Если пользователь не хочет сохранять, я бы хотел закрыть его. Однако, когда DataGridView имеет ошибки проверки (я проверяю набор данных в событии ColumnChanging таблиц данных), форма не будет закрыта. Даже если я не улавливаю событие FormCLosing, форма отказывается закрываться. Я думаю, я должен как-то очистить ошибки валидации в datagridvIew. Может кто-нибудь предложить решение?

Редактировать: еще одна деталь: форма является дочерней формой mdi. Само собой разумеется, mdi parent также не закроется.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Хорошо, это была моя ошибка.У mdi parent было несколько обработчиков для дочерних событий mdi, но когда дочерняя форма закрылась, не все обработчики были удалены.

0 голосов
/ 05 января 2012

Вы можете переопределить проверку и (принудительно закрыть) закрыть форму, установив false в FormClosingEventArgs.Cancel свойство Closing аргумент обработчика.

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
     DialogResult res = MessageBox.Show("Close it?", "Close", MessageBoxButtons.YesNo);
     if (res == DialogResult.No)
     {
       e.Cancel = true;
     }
     else
     {
        e.Cancel = false;
      }
    }
...