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 に到達せず、myDataGridView_DataError に到達してそこにとどまります。

次のロジックが必要です。入力したデータに関係なく、cancelBtn をクリックすると cancelBtn_Click() が必要になります。

4

1 に答える 1

0

キャンセル ボタンがクリックされても、キャンセル ボタンのクリック イベントの前に、提供したデータが間違っていたためにページ内で未処理の例外が発生した可能性があるため、リクエストは DataError イベント ハンドラに送られます。より良いのは、コードに適切な例外処理を実装し、発生させたくない例外を抑制します。

于 2013-10-08T11:16:43.397 に答える