私は持っています:
MenuStrip
DataGridView
データベースに値を保存する[ファイル]>[保存]がありますDataGridView
数値を含める必要のある列があります(入力が数値でない場合_CellValidating
に設定するイベントを使用して、これをすでに解決しました)e.Cancel = true
問題は、セルがまだダーティであるときに(編集モードで)[ファイル]> [保存]をクリックすると、その値が無視され、データベースレコードに含まれないことです。
私は持っています:
MenuStrip
DataGridView
データベースに値を保存する[ファイル]>[保存]があります
DataGridView
数値を含める必要のある列があります(入力が数値でない場合_CellValidating
に設定するイベントを使用して、これをすでに解決しました)e.Cancel = true
問題は、セルがまだダーティであるときに(編集モードで)[ファイル]> [保存]をクリックすると、その値が無視され、データベースレコードに含まれないことです。
[ファイル]>[保存]ハンドラーの先頭で、を呼び出しmyDataGridView.EndEdit()
て編集モードを終了し、セルの値を取得できるようにします。
セルの変更を基になるデータソースにすぐにコミットする場合は、これを試してください-
void dataGridView1_CurrentCellDirtyStateChanged(object sender,
EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
セルの内容が変更されたが、変更が保存されていない場合、セルは変更済みとしてマークされます。
このイベントは通常、セルが編集されたが変更がデータキャッシュにコミットされていない場合、または編集操作がキャンセルされた場合に発生します。