ComboBoxCell有Items但什么也没显示

时间:2014-08-20 07:13:26

标签: c# winforms datagridview datagridviewcomboboxcell

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

我尝试添加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();

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

编辑:DataGridView已设置为禁用编辑,我发现这使我无法查看ComboBox项目。在真正的程序中还有其他列,它只是读取,这就是我禁用编辑的原因。我仍然希望用户能够点击并查看ComboBox项目。

1 个答案:

答案 0 :(得分: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");
相关问题