我正在使用数据集读取xml文件,然后我创建了一个datagridview并动态地将数据集中的表分配给datagridview.datasource。 我在这里遇到的问题是,我想在datagridview中为一个单元格添加一个组合框。
以下是我的代码:
datagridview1.AllowUserToAddRows = false;
datagridview1.AllowUserToDeleteRows = false;
datagridview1.RowHeadersVisible = false;
datagridview1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
datagridview1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
datagridview1.DataMember = "";
datagridview1.DataSource = my_dataTable;
datagridview1.Columns["first name"].ReadOnly = true;
datagridview1.Columns["Second name"].Visible = false;
datagridview1.Columns["place"].Visible = false;
datagridview1.Columns["address"].Visible = false;
string[] datasource = { "add1", "add2" };
DataGridViewComboBoxCell combo = new DataGridViewComboBoxCell();
combo.DataSource = datasource;
datagridview1.Rows[2].Cells[2] = combo;
它给了我datagridviewcomboboxcell值无效错误。如果我给出一些值,那么它运行良好,但无法在datagridview中看到组合框。
答案 0 :(得分:0)
您可以使用DataSource
提供给Items
,但使用简单的字符串数组将无效。
相反,您可以将数组转换为List<string>
:
string[] datasource = { "add1", "add2" };
DataGridViewComboBoxCell combo = new DataGridViewComboBoxCell();
combo.DataSource = datasource.ToList();
DGV.Rows[2].Cells[2] = combo;
设置一个值,你可以使用..
combo.Value = combo.Items[0];
..之后设置了单元格。
为了更好地控制,特别是对于加入Display
- 和ValueMembers
,您可以切换为Dictionary
或使用List<someClass>
..