0

私は多くのコントロールを持つDataGridViewwinformsを持っていますComboBoxComboBox編集できるように変換しました。

ただし、それ以降、列の変更は基になるクラス オブジェクトで更新されていません。

コードをデバッグすると、セル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;
    }
}
4

0 に答える 0