DataGridViewComboBoxColumn - 必须点击两次单元格才能显示下拉框

11

我正在使用一个由设计器创建的DataGridView,其中包括一个DataGridViewComboBoxColumn列。

有点烦人的是,我必须点击每个单元格两次甚至三次才能显示下拉列表:

  1. 如果我点击文本部分,则需要3次点击!

图像描述 图像描述 图像描述

  1. 如果我点击向下箭头,只需要两次点击:

图像描述 图像描述

我认为这是因为单元格使用第一次点击来获取焦点,但是否有一种方法来解决这个问题,使得单击单元格立即显示组合框?我注意到在使用DataGridViewCheckBoxColumn时不会出现同样的问题... 单击复选框可以立即切换它,而不管该单元格是否具有焦点。


也许这可以帮助:https://dev59.com/FnVC5IYBdhLWcg3wnCaA#242760 - Nam Bình
您可能想要查看此解决方案。 - TaW
1个回答

21
你可以简单地将你的 DataGridViewEditMode 属性设置为 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;
}

使用这个技巧时要小心,如果用户只想在单元格之间导航而不是编辑,可能会让下拉菜单变得烦人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接