【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;

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です