【问题标题】:DataGridViewComboBoxColumn - Have to click cell twice to display combo boxDataGridViewComboBoxColumn - 必须单击单元格两次才能显示组合框
【发布时间】:2015-10-05 11:27:24
【问题描述】:
我正在使用DataGridView,它是使用设计器创建的,其中包含几列,包括DataGridViewComboBoxColumn 列。
有点烦人,我必须在每个单元格上单击两次甚至三次才能显示下拉列表:
- 如果我点击文本部分,则需要 3 次点击!
- 如果我点击向下箭头,只需点击两次:
我认为这是由于单元格使用第一次点击来获得焦点,但有没有办法解决这个问题,所以点击一个单元格会立即显示组合框?我注意到使用DataGridViewCheckBoxColumn 会发生同样的问题不会...单击复选框会立即切换它,无论该单元格是否具有焦点。
【问题讨论】:
标签:
c#
.net
winforms
datagridview
datagridviewcomboboxcolumn
【解决方案1】:
您可以简单地将DataGridView 的EditMode 属性设置为EditOnEnter。
它使编辑更容易。几乎单击一次,但如果您想立即单击 ComboBoxColumn 的组合框显示下拉列表的内容,您可以处理 CellClick 事件,然后使用网格的 EditingControl 并将其转换为 DataGridViewComboBoxEditingControl 并制作它显示下拉菜单。
private void categoryDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
//You can check for e.ColumnIndex to limit this to your specific column
var editingControl = this.categoryDataGridView.EditingControl as
DataGridViewComboBoxEditingControl;
if (editingControl != null)
editingControl.DroppedDown = true;
}
使用此技巧时要小心,当用户只想在单元格之间导航而不进行编辑时,可能会使下拉菜单烦人。