我限制txtDate_Validating
,如果用户将txtDate.text
留空,则会出现消息框!
但是如果用户关闭表单,仍然会显示消息!!
那么..如何从textbox_Validating
事件取消Form_Closing
事件?
...谢谢
答案 0 :(得分:0)
将此添加到您的代码中:
protected override void OnFormClosing(FormClosingEventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
try
{
base.OnFormClosing(e);
if (e.CloseReason == CloseReason.WindowsShutDown) return;
// Confirm user wants to close
switch (MessageBox.Show(this, "\tAre you sure you want to close ?", "Closing", MessageBoxButtons.YesNo))
{
case DialogResult.No:
e.Cancel = true;
break;
default:
break;
}
}
finally
{
Cursor.Current = Cursors.Default;
}
}
答案 1 :(得分:0)
你要求的并不是那么简单。 控件中的验证事件在丢失焦点事件之前上升,因此 之前用户可以关闭窗口。 如果我是你,我会使用ErrorProvider而不是MessageBox警告。
这样,如果用户关闭表单,屏幕上就不会有恼人的消息。