DataGridViewの実装でDataGridViewComboBoxCellを使うことがたまにある。
このコンボボックスは普通のSystem.Windows.FormsのComboBoxと仕様が違い、デフォルトだと1クリックではリストがドロップダウンしてくれないのだ。
2回クリックして初めてドロップダウンするのがデフォルトの仕様らしい。
これだとユーザーはとってもめんどくさいので、これを1クリックでドロップダウンするよう実装する。
まずはDataGridViewのイベントに以下を追加。
_dataGridView.CellEnter += _dataGridView_CellEnter;
その後にイベント処理で以下のように実装する。
private void _dataGridView_CellEnter(object sender, DataGridViewCellEventArgs e) { if (_dataGridView[e.ColumnIndex, e.RowIndex].GetType().Equals(typeof(DataGridViewComboBoxCell))) { _dataGridView.BeginEdit(false); ((DataGridViewComboBoxEditingControl)_dataGridView.EditingControl).DroppedDown = true; } }
これで1クリックでコンボボックスのリストがドロップダウンしてくれるようになった。