AlpacaTech Blog

備忘録。ゲーム作りたい系草食動物

DataGridViewを編集した時に、即座に反映させたい。

DataGridViewは、

チェックボックスやテキストボックスの内容を変更しても

フォーカスが変わらないと内部の変数に反映されない(CellValueChangedが発生しない)


DataGridViewで、CurrentCellDirtyStateChangedイベントを以下の通りにすると、

private: System::Void dataGridView1_CurrentCellDirtyStateChanged(System::Object^ sender, System::EventArgs^ e) {

DataGridView^ dgv = (DataGridView^)sender;

if ( dgv->IsCurrentCellDirty)

{

dgv->CommitEdit(DataGridViewDataErrorContexts::Commit);

}

}

チェックボックスやテキストボックスの内容が変わるとすぐに反映される(CellValueChangedが呼び出される)