1

私は持っています:

  1. MenuStripDataGridViewデータベースに値を保存する[ファイル]>[保存]があります

  2. DataGridView数値を含める必要のある列があります(入力が数値でない場合_CellValidatingに設定するイベントを使用して、これをすでに解決しました)e.Cancel = true

問題は、セルがまだダーティであるときに(編集モードで)[ファイル]> [保存]をクリックすると、その値が無視され、データベースレコードに含まれないことです。

4

2 に答える 2

2

[ファイル]>[保存]ハンドラーの先頭で、を呼び出しmyDataGridView.EndEdit()て編集モードを終了し、セルの値を取得できるようにします。

于 2012-06-16T13:58:04.747 に答える
1

セルの変更を基になるデータソースにすぐにコミットする場合は、これを試してください-

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

MSDN:

セルの内容が変更されたが、変更が保存されていない場合、セルは変更済みとしてマークされます。

このイベントは通常、セルが編集されたが変更がデータキャッシュにコミットされていない場合、または編集操作がキャンセルされた場合に発生します。

于 2012-06-16T13:59:21.417 に答える