10

我正在使用DataGridView, 使用带有几列(包括一DataGridViewComboBoxColumn列)的设计器创建。

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

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

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

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

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

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

4

1 回答 1

19

您可以简单地将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;
}

使用此技巧时要小心,当用户只想在单元格之间导航而不进行编辑时,您可能会使下拉菜单烦人。

于 2015-10-05T11:48:10.790 回答