DataGridView のEditModeプロパティをEditOnEnterに設定し、 EditingControlShowingイベント
を作成して、このイベントでコンボ ボックスをドロップダウンするコードを追加することで、マウスを 1 回クリックするだけでコンボ ボックスをアクティブにしてドロップダウンすることができました。ここにサンプルコードがあります -
//to get the correct cell get value of row and column indexs of the cell
ColIndex = 1;
RowIndex = 1;
DataGridViewComboBoxCell ComboBoxCell = new DataGridViewComboBoxCell();
ComboBoxCell.Items.AddRange("XYZ", "ABC", "PQR");
ComboBoxCell.Value = "XYZ";
datagridview1[ColIndex, RowIndex] = ComboBoxCell;
上記のコードから、位置 (1,1) の DataGirdCell は「DataGridViewComboBoxCell」に変換され、コンボ ボックスがセルに表示されます。
コンボ ボックスをドロップダウンするには、マウスを複数回クリックする必要がある場合があります。シングルクリックでコンボボックスをアクティブにするには、次の手順が必要です -
- コンボ ボックス セルの ReadOnly プロパティを false に設定します。
- DataGridView の EditMode プロパティを EditOnEnter に設定します。
- EditingControlShowing イベントを作成し、コンボ ボックスをドロップダウンするコードを追加します。
コンボ ボックスをドロップダウンし、シングル クリックでアクティブにするサンプル コードを次に示します。
private void datagridview1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox ctrl = e.Control as ComboBox;
ctrl.Enter -= new EventHandler(ctrl_Enter);
ctrl.Enter += new EventHandler(ctrl_Enter);
}
void ctrl_Enter(object sender, EventArgs e)
{
(sender as ComboBox).DroppedDown = true;
}
詳細については、
http://newapputil.blogspot.in/2015/08/add-combo-box-in-cell-of-datagridview.htmlを確認してください。