3

列とテーブル (外部キー - Table_ID) の 2 つのテーブルがあります。コンボボックスでdataGridViewに列を表示したい。コンボボックスに表示される関連テーブル(名前テーブル)と、選択された項目がカラムに設定された値になります。

List<columns> columns = DataLoader.GetColumns();
List<tables> tables = DataLoader.GetTables();

this.editingDataGridView.DataSource = columns; // my dataGridView
DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn();

comboBoxColumn.DisplayMember = "Table_Name";
comboBoxColumn.ValueMember = "Table_ID";
comboBoxColumn.DataSource = tables;

//add combobox column in dataGrid
this.editingDataGridView.Columns.Add(comboBoxColumn);

//AND this i want set value
int index = this.editingDataGridView.Columns.IndexOf(comboBoxColumn);
for (int i = 0; i < columns.Count; i++)
{
   this.editingDataGridView.Rows[i].Cells[index].Value = columns[i].Table_ID;
}

実行後、dataSource を含むコンボボックス列を含む gridView を取得しますが、デフォルト値は選択されていません! ここに画像の説明を入力

4

2 に答える 2

4

キーポイントは

comboBoxColumn.DataPropertyName = "Table_ID";

dataGridComboBoxColumn の DataPropertyName を設定する必要があります

もっとこれ

于 2013-08-23T11:06:14.823 に答える
0

vb.netで、この解決策を見つけました

Dim cbx As DataGridViewComboBoxCell = dgvEstudios.Rows(x).Cells(1)
cbx.Value = Trim("String value")
于 2016-08-19T15:41:41.643 に答える