0


VisualStudioで生成されたデータセットがあります。
それらをDataGridView(VisualStudioによって接続された幅)に接続しました。
私はフィルターを使用しています。例:
xyBindingSource.Filter = "yx = 'tart'";

私の問題:
yx列の値を(タルトから他の値に)変更すると、CellEndEditイベントが実行される前に変更された行が削除されます。
また、CellEndEditイベントでは、DataGridViewCellEventArgsに正しい行と列の番号が含まれます。
ただし、イベント引数が指す行は、選択された行が以前に削除されているため、編集された行ではありません。

私に何ができる?

助けてくれてありがとう:
Norbi

4

1 に答える 1

0

DataGridView.CurrentCellDirtyStateChangedこれは、イベントを使用して処理できます。DataGridView.CellValueChanged次のようにすると、イベントが発生する可能性があります。

void dataGridView1_CurrentCellDirtyStateChanged(object sender,
    EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

CommitEdit手動でDataGridView.CellValueChangedイベントを発生させます。Filterこのイベント内でメソッドを再度リロードできます。試してみる。

于 2012-08-31T08:23:10.230 に答える