private void OnClosingForm(FormClosingEventArgs e) { try { if (_isCancelling) { return; } AssignValues(); if (_questionaire.ObjectState != ObjectStates.None) { var isYes = MessageBox.Show("Do you want to save changes", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes; if (isYes) { _questionaire.Update(); DialogResult = DialogResult.OK; } else { _questionaire.Cancel(); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Cancel = true; } }