我有DataGridView和按钮。
DataGridView myDataGridView = new DataGridView();
Button cancelBtn = new Button();
我订阅活动
myDataGridView.DataError += myDataGridView_DataError;
cancelBtn.Click += cancelBtn_Click;
我的事件处理程序
void myDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
//show error message
MessageBox.Show(e.Exception.Message);
//set to editing element original value
curRowDataGrid.CancelEdit();
}
void cancelBtn_Click(object sender, EventArgs e)
{
curRowDataGrid.CancelEdit();
//and some specific additional logic
}
但是,如果我点击cancelBtn(如果在点击我写错了值之前)我没有得到事件处理程序cancelBtn_Click,我得到myDataGridView_DataError并留在那里。
我想要遵循以下逻辑:无论我输入什么数据,如果我点击cancelBtn我想要取消取消Btn_Click()。
答案 0 :(得分:0)
虽然单击了取消按钮,但在取消按钮的单击事件之前,由于您提供的数据错误,页面中的某些未处理的异常可能会导致该请求进入DataError事件处理程序。 更好的是,在代码中实现适当的异常处理,抑制您不想触发的异常。