0

我有 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,我会到达myD​​ataGridView_DataError并留在那里。

我想要以下逻辑:无论我输入什么数据,如果我点击cancelBtn,我都想去cancelBtn_Click()。

4

1 回答 1

0

尽管单击了取消按钮,但在取消按钮的单击事件之前,由于您提供的数据错误,可能导致页面中的一些未处理的异常,请求转到 DataError 事件处理程序。更好的是,在您的代码中实施适当的异常处理,抑制您不想触发的异常。

于 2013-10-08T11:16:43.397 回答