フォームのイベント ハンドラー中にDataGridViewComboBoxColumn
a を追加し、列のそれぞれの DataSource を設定しています。ただし、フォームが表示されると、それぞれの DataSource はに設定されています。列とそのセルにデータを入力するために使用するコードは次のとおりです。DataGridView
Load
DataGridViewComboBoxCell
DataGridViewComboBoxCell
null
DataGridViewComboBoxColumn comboCol;
comboCol = new DataGridViewComboBoxColumn();
comboCol.Name = "ComboCol";
comboCol.HeaderText = "Combo Column";
comboCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
this.dgv.Columns.Add(comboCol);
for (int i = 0; i < dgv.Rows.Count; i++)
{
// This datatable is actually populated here!
DataTable myData = PopulatedDataTable(dgv.Rows[i].Cells["info"].Value);
DataGridViewComboBoxCell DCC = new DataGridViewComboBoxCell();
DCC = (DataGridViewComboBoxCell)dgv.Rows[i].Cells["CombolCol"];
DCC.DataSource = myData;
DCC.DisplayMember = "Association"; // Association is a column in myData
DCC.ValueMember = "Association";
}
dgv.Columns["association"].Visible = false;
このコードは、フォームがロードされた後にクリックするボタンに配置した場合に期待どおりの動作をしますが、フォームのロード中に実行すると DataSource がクリアされます。助言がありますか?