0

我在表单设计DataGridView器中添加了一个。ComboBoxColumn在我的代码中,我想添加每行都有单独ComboBoxCell的行。这是因为 ComboBoxes 中的每一行都有不同的值。

我尝试添加DataGridViewComboBoxCell如下所示的项目,还尝试创建 aDataTable并将其绑定到DataGridViewComboBoxCell. 当我运行程序时,我可以看到行和组合框,但是当我尝试单击框时,没有显示任何项目。

        DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell();
        DataGridViewComboBoxCell cell2 = new DataGridViewComboBoxCell();

        cell.Items.Add("Item1");
        cell.Items.Add("Item2");
        cell.Items.Add("Item3");

        cell2.Items.Add("Item4");
        cell2.Items.Add("Item5");
        cell2.Items.Add("Item6");


        DataGridViewRow row = new DataGridViewRow();
        DataGridViewRow row1 = new DataGridViewRow();

        row.Cells.Add(cell);
        row1.Cells.Add(cell2);

        dataGridView1.Rows.Clear();
        dataGridView1.Rows.Add(row);
        dataGridView1.Rows.Add(row1);
        dataGridView1.Refresh();

我似乎无法在其他帖子中找到解决方案。任何人都可以帮助让项目显示?

编辑:DataGridView已设置为禁用编辑,我发现这阻止了我查看ComboBox项目。在实际程序中还有其他列,它是只读的,这就是我禁用编辑的原因。我仍然希望用户能够单击并查看这些ComboBox项目。

4

1 回答 1

0

确保您DataGridViewComboboxColumn已从ColumnType该列中选择。

如果您还没有添加该列,那么您可以像这样添加。

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.Name ="cmbItem";
grd.Columns.Add(column);

如果您已经添加了该列,那么您可以直接从组合框单元格的引用中添加项目。

int rowIndex  = grd.Rows.Add();
DataGridViewComboBoxCell oCell = (DataGridViewComboBoxCell)grd.Rows[rowIndex].Cells["cmbItem"];
oCell.Items.Add("Item1");
oCell.Items.Add("Item2");
oCell.Items.Add("Item3");

rowIndex = grd.Rows.Add();
DataGridViewComboBoxCell oCell = (DataGridViewComboBoxCell)grd.Rows[rowIndex].Cells["cmbItem"];
oCell.Items.Add("Item4");
oCell.Items.Add("Item5");
oCell.Items.Add("Item6");
于 2014-08-20T08:24:35.773 回答