【问题标题】:DataGridViewComboBoxColumn - Have to click cell twice to display combo boxDataGridViewComboBoxColumn - 必须单击单元格两次才能显示组合框
【发布时间】:2015-10-05 11:27:24
【问题描述】:

我正在使用DataGridView,它是使用设计器创建的,其中包含几列,包括DataGridViewComboBoxColumn 列。

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

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

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

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

【问题讨论】:

标签: c# .net winforms datagridview datagridviewcomboboxcolumn


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    相关资源
    最近更新 更多