DataGridViewComboBoxColumn - 必须单击两次单元格才能显示组合框

Mr.*_*Boy 7 .net c# datagridview winforms datagridviewcomboboxcolumn

我正在使用a DataGridView,使用包含DataGridViewComboBoxColumn列的几列的设计器创建.

我必须点击每个单元格两次甚至三次以显示下拉列表,这有点令人恼火:

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

在此输入图像描述 在此输入图像描述 在此输入图像描述

  1. 如果我点击下方的arroow,只需点击两下:

在此输入图像描述 在此输入图像描述

我认为这是由于单元格使用第一次点击来获得焦点,但有没有办法解决这个问题所以点击一个单元格会立即显示组合框?我注意到,使用DataGridViewCheckBoxColumn同样的问题没有不会发生......点击复选框立即切换它不管是细胞具有焦点.

Rez*_*aei 9

你可以简单地设置EditMode您的属性DataGridViewEditOnEnter.

它使编辑更容易.几乎单击,但如果您想要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;
}
Run Code Online (Sandbox Code Playgroud)

使用这个技巧时要小心,当用户只想在不进行编辑的情况下在单元格之间导航时,可能会让用户感到烦恼.