我在使用数据绑定 datagridviewcomboboxcell 时遇到问题我想删除出现在数据绑定组合框单元格上的蓝色选择线。我注意到如果 comboboxcell 不是数据绑定但有项目集合,则不会出现蓝线。但是数据绑定组合框确实有它。项目集合数据绑定你会在第一张图片中看到没有蓝色选择线但是在下一张图片(数据绑定组合框单元格)中有......我需要把这条选择线拿走,这样当数据绑定的组合框单元格只有一行数据时,用户只能通过键盘输入进行选择。我最初尝试添加一个 keyDown 事件来设置确实更改了值的 Items[index],但是,当我离开单元格时,它会显示模型名称和命名空间。然后,当返回到单元格时,它会显示该值。我使用以下代码来执行此操作:我向组合框添加了一个 keydown 事件,这里是 keydown 事件private void dataGridView_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].CellType.Name == "DataGridViewComboBoxCell" && dataGridView1.CurrentCell.ReadOnly == false) { DataGridViewRow row = dataGridView1.CurrentRow; try { if ((row.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).Items.Count == 1) { (dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).Value = taxcodes[0]; (dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).DisplayMember = "FullDescription"; (dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).ValueMember = "TaxID"; } } catch { } } }现在我已经尝试更改组合框的设置值但没有运气,我正在寻找下一个可能的解决方案,我可能会开始工作。如果我可以使 Combobox 在最初选择时没有选择行,那么只要该行移动到列表中的唯一项目,它就会选择提供选择该项目作为值的能力。注意:具有多个项目的数据绑定组合框单元格效果很好注意:定义了项目的非数据绑定组合框单元格运行良好,但是我需要一个显示成员和值成员当组合框只有一项时,此查询的理想结果将使我能够选择数据绑定组合框项(使用 ENTER 键)。最后注意:当我使用鼠标在只有 1 个项目的数据绑定组合框单元格上进行选择时,它工作得很好。感谢您的帮助,如果有人可以提供帮助
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
所以在咨询了朋友后,我设法重写了.ToString()方法
public override string ToString(){ return FullDescription; }
在这种情况下,这对我有用,Keydown 路线是正确的路线。
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消