1

プレーンコンボボックスでは、comboboxstyleがSimpleに設定されていて、ユーザーがフィールドに何かを入力し、Enterキーを押すとKeyUpイベントが発生します。datagridviewで、ComboboxColumnとスタイルをSimple KeyUpイベントが発生せず、KeyPressとKeyDownとして設定されている場合。また、独自のカスタムdatagridviewを作成しましたが、編集モードのKeyUpも起動されません。そして、獲得したカスタムDataGridViewComboBoxCellを作成しました。OnKeyUp、EnterUnsharesRow、KeyDownUnsharesRowイベントは呼び出されません。ユーザーがこのコンボボックスセルに何かを入力してEnterキーを押すと、このテキストはクリアされます。セルに入力されたテキストをコミットする方法と、どのイベントが発生しますか?

ありがとう

4

1 に答える 1

2

DataGridViewのEditingControlShowingイベント中に、基になる編集コントロールにアクセスする必要があります。

void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if (e.Control is DataGridViewComboBoxEditingControl)
    {
        DataGridViewComboBoxEditingControl cb =  
            e.Control as DataGridViewComboBoxEditingControl; 
        cb.DropDownStyle = ComboBoxStyle.Simple;

        cb.KeyUp += new KeyEventHandler(cb_KeyUp);
    }
}
于 2011-12-18T15:04:45.910 に答える