【发布时间】:2011-12-03 23:38:27
【问题描述】:
我目前正在尝试将 ComboBox 添加到 dataGridView。
在DGV中,有5列:checkbox、string、string、combobox、combobox。
两个组合框列都配置为 datagridview 组合框列(通过 VisualStudio 设计器)。我的问题是添加行。
我目前的尝试是:列已经定义,我通过 dataGridView.Rows.Add 添加行。 为此,我使用了一个对象数组。示例:
dataGridViewRow row = new dataGridViewRow();
object[] obj = new object[5] {true, "str1", "str2", null, null};
dataGridView1.Rows.Add(obj);
通过,没有任何错误。但从逻辑上讲,组合框并没有填充任何内容。
我尝试将数据源设置为一行的第 4 和第 5 个单元格:
错误...使用 ROW.dataGridViewComboBoxCell.Items.Add:项目不显示...
用新的 DGVcomboBoxCell 或 -Column 填充 obj[3] 和 4:
Error... :The error message says "The dataGridViewComboBoxCell-Value is invalid.
更多信息:每列在组合框中应具有相同的项目。 (这些以前是通过互联网加载的,作为 xml)。将数据源设置为两列会破坏整个 DGV(我认为是因为其他列没有数据源)。 简而言之:如何将行添加到包含填充项目的组合框的 DGV?
真诚地, 游牧民族
编辑:这里有一些代码可以解决我的问题:
DataGridViewCheckBoxColumn check = new DataGridViewCheckBoxColumn();
check.Name = "Col1";
dataGridView1.Columns.Add(check);
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[1].Name = "Col2";
dataGridView1.Columns[2].Name = "Col3";
object[] row = new object[] { true, "str1", "str2" };
dataGridView1.Rows.Add(row);
DataGridViewComboBoxColumn combo1 = new DataGridViewComboBoxColumn();
DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn();
combo1.Name = "Col4";
combo1.Items.Add("100x100");
combo1.Items.Add("200x200");
combo2.Name = "Col5";
combo2.Items.Add("option1");
combo2.Items.Add("option2");
dataGridView1.Columns.Add(combo1);
dataGridView1.Columns.Add(combo2);
首先添加一行,转换列,配置它们并将它们添加到行中。 无需在设计器中预先指定任何列。
【问题讨论】:
标签: c# winforms datagridview datagridviewcomboboxcell