私は多くのコントロールを持つDataGridView
winformsアプリケーションを持っていますComboBox
。ComboBox
編集できるように変換しました。
ただし、それ以降、列の変更は基になるクラス オブジェクトで更新されていません。
コードをデバッグすると、セルCellValuePushed()
に変更が加えられたときにイベント ハンドラーが呼び出されないことに気付きました。ComboBox
私が見逃しているものは何ですか?
ありがとう
に値を入力するComboBox
と、CellValueNeeded()
イベントハンドラが呼び出されていることに気付きました。
スクリーンショットで、コンボボックス セルにデータを入力しようとすると、CellValueNeeded()
eventhandler が呼び出されることに注意してください。
アップデート :
private void UserDataTable_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if ((UserDataTable.CurrentCell.ColumnIndex == 4) ||
(UserDataTable.CurrentCell.ColumnIndex == 6) ||
(UserDataTable.CurrentCell.ColumnIndex == 8) ||
(UserDataTable.CurrentCell.ColumnIndex == 11))
{
ComboBox combo = e.Control as ComboBox;
combo.DropDownStyle = ComboBoxStyle.DropDown;
if (combo == null)
return;
}
}
private void UserDataTable_CellValuePushed(object sender, DataGridViewCellValueEventArgs e)
{
IntVector temp1 = this.UserData[e.RowIndex];
switch (e.ColumnIndex)
{
case 0: temp1.DeleteMember = (bool)e.Value;
break;
case 1:
temp1.Date1 = Convert.ToDateTime(e.Value).ToString("dd-MM-yy");
break;
case 2:
temp1.CaseNo = Convert.ToString(e.Value);
break;
case 3:
break;
}
}