【C#】WinFormsのDataGridViewで行ごとにセルタイプを変える

例えば、設定の一覧を表示する画面などで、1列目は項目名、2列目に値が入ったDataGridViewを作成したいとする。2列目は行によって値を入力したり、コンボボックスから選択したりしたいという場合がありえる。

↓こんな感じ。

項目名 │ 値
商品名 │ [  ]
分類  │ [選択▼]

下記のようにして可能。ColumnTypeはTextBoxCellのままにしておく。

//ディクショナリをコンボボックスにセット
var cmb = new DataGridViewComboBoxCell();
cmb.DataSource = dic1.ToList();
cmb.DisplayMember = "Value";
cmb.ValueMember = "Key";
dgvSettings.Rows.Add();
dgvSettings.Rows[0].Cells[1] = cmb;

//上とは違うディクショナリをコンボボックスにセット
var cmb2 = new DataGridViewComboBoxCell();
cmb2.DataSource = dic2.ToList();
cmb2.DisplayMember = "Value";
cmb2.ValueMember = "Key";
dgvSettings.Rows.Add();
dgvSettings.Rows[1].Cells[1] = cmb2;

//テキストボックスをセット
var txt = new DataGridViewTextBoxCell();
dgvSettings.Rows.Add();
dgvSettings.Rows[2].Cells[1] = txt;

コメントする

メールアドレスが公開されることはありません。