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

时间:2015-10-05 11:27:25

标签: c# .net winforms datagridview datagridviewcomboboxcolumn

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

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

  1. 如果我点击文字部分,则需要 3 点击!
  2. enter image description here enter image description here enter image description here

    1. 如果我点击下方的arroow,只需点击两下:
    2. enter image description here enter image description here

      我认为这是因为单元格使用第一次点击来获得焦点,但有没有办法解决这个问题所以点击一个单元格会立即显示组合框?我注意到使用DataGridViewCheckBoxColumn相同的问题会发生 not ...无论该单元格是否有焦点,点击一个复选框都会立即切换它。

1 个答案:

答案 0 :(得分:9)

您只需将DataGridView的{​​{3}}属性设置为EditOnEnter

它使编辑更容易。几乎单击,但如果您想立即点击ComboBoxColumn的组合框显示下拉列表的内容,您可以处理EditMode事件,然后使用网格的CellClick并投射它到EditingControl并让它显示下拉列表。

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;
}

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