ComboBoxCell有Items,但是什么都不显示



我有一个DataGridView,它有一个ComboBoxColumn我添加在表单设计器。在我的代码中,我想添加行,每个行都有单独的ComboBoxCell,这是由于每一行在组合框中有不同的值。

我尝试添加DataGridViewComboBoxCell项目如下所示,也通过创建DataTable并将其绑定到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();

我似乎在其他帖子中找不到解决方案。有人能帮我把这些东西拿出来展示吗?

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

确保您已经从ColumnType中为该列选择了DataGridViewComboboxColumn

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

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");

相关内容

  • 没有找到相关文章

最新更新