DataGridViewComboBox下拉列表不显示任何可供选择的项目,下拉列表不起作用

时间:2012-09-07 21:31:26

标签: c# datagridviewcombobox

DataGrid中,我有一个DataGridViewComboBoxColumn。我在代码中为DataTable,项目,值成员和显示成员分配了DataSource,但是当我运行程序时ComboBox显示为空。下拉列表不起作用一点都不。

但它确实正确地分配了值,表明DataSource已正确设置。当我分配值时,它会获取正确的显示成员。

我已根据其他相关帖子尝试过的事情 - 使用List代替DataTable [完全相同] - 使用enum代替DataTable [工作正常] - 通过DataTable使用BindingSource对象 - 检查所有行,列,单元格的“只读”= false。 - 作为预防措施,在特定列的cell_enter函数上指定“只读”= false,如果DataSource则设置null

当我在调试中看DataGridViewComboBoxCell [或列]时,我看到已填充项目。 我真的没有想法,任何帮助都表示赞赏。 如果它有帮助,我已经粘贴了一些代码片段

DataTable data = new DataTable();
data.Columns.Add(new DataColumn("Value", typeof(string)));
data.Columns.Add(new DataColumn("Description", typeof(string)));

data.Rows.Add("en_US", "English-US");
data.Rows.Add("de", "german-Germany");

(patientGrid.Columns[5] as DataGridViewComboBoxColumn).Items.Add("English-US");
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).Items.Add("german-Germany");
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).ValueType = typeof(string);

(patientGrid.Columns[5] as DataGridViewComboBoxColumn).DataSource = data;
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).ValueMember = "Value";
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).DisplayMember = "Description";


//setting value 
(patientGrid.Rows[rowIndex].Cells[5] as DataGridViewComboBoxCell).Value = 
    clientLanguagePreference[cmbClients.SelectedItem.ToString()];

2 个答案:

答案 0 :(得分:0)

添加:patientGrid.Rows [rowIndex] .Cells [5] .ReadOnly = false;

答案 1 :(得分:0)

在Designer中,单击小箭头(右上角),然后单击“编辑列”。选择ComboBox并将Read Only字段设置为false