DataGridViewComboBox 下拉列表不显示任何可供选择的项目,下拉不起作用
Posted
技术标签:
【中文标题】DataGridViewComboBox 下拉列表不显示任何可供选择的项目,下拉不起作用【英文标题】:DataGridViewComboBox drop down list does not show any items for selection, drop down doesn't work 【发布时间】:2012-09-07 21:31:25 【问题描述】:在DataGrid
中,我有一个DataGridViewComboBoxColumn
。我在代码中分配了一个DataTable
作为DataSource
、项目、值成员和显示成员,但是当我运行程序时ComboBox
显示为空。下拉菜单根本不起作用。
它确实正确分配了值,这表明 DataSource
设置正确。即当我分配一个值时,它会获取正确的显示成员。
我已经根据其他相关帖子尝试过的事情
- 使用List
而不是DataTable
[工作方式完全相同]
- 使用enum
而不是DataTable
[工作正常]
- 通过BindingSource
使用DataTable
对象
- 在所有行、列、单元格上检查“只读”= false。
- 作为预防措施,在cell_enter
函数上为特定列分配“只读”= false,如果是null
,则设置DataSource
。
当我在调试中查看DataGridViewComboBoxCell
[or column] 时,我看到项目已被填充。
我真的没有想法,任何帮助表示赞赏。
如果有帮助,我已经粘贴了一些代码sn-ps
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()];
【问题讨论】:
【参考方案1】:添加:patientGrid.Rows[rowIndex].Cells[5].ReadOnly = false;
【讨论】:
【参考方案2】:在 Designer 中单击小箭头(右上角),然后单击编辑列。选择 ComboBox 并将只读字段设置为 false
【讨论】:
以上是关于DataGridViewComboBox 下拉列表不显示任何可供选择的项目,下拉不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如果 datagridviewcombobox 的值不在 datagridviewcomboboxcolumn 数据源中,我该怎么办?
vb.net 为 datagridviewcombobox 中的每个项目显示工具提示文本