.net DataGridViewComboxCell需要多次单击以打开另一个单元格的菜单。关于加快进程的建议?

.net DataGridViewComboxCell需要多次单击以打开另一个单元格的菜单。关于加快进程的建议?,.net,datagridview,.net,Datagridview,要打开DataGridViewComboxCell的菜单,首先必须单击: 1) 我要编辑的单元格的行 2) 在我要编辑的单元格中 3) 我想再次编辑,以便打开单元格的组合框 如果已选择另一个单元格,则第一次单击将关闭已激活的组合框,然后需要再单击3次才能打开组合框 由于单击DataGridViewButtonCell(DGVButtonCells响应第一次单击,如果已经打开菜单,则响应第二次单击)不需要类似于此级别的活动,有谁能建议一种简单的方法,使从DataGridViewComboxCell

要打开DataGridViewComboxCell的菜单,首先必须单击:
1) 我要编辑的单元格的行
2) 在我要编辑的单元格中
3) 我想再次编辑,以便打开单元格的组合框

如果已选择另一个单元格,则第一次单击将关闭已激活的组合框,然后需要再单击3次才能打开组合框


由于单击DataGridViewButtonCell(DGVButtonCells响应第一次单击,如果已经打开菜单,则响应第二次单击)不需要类似于此级别的活动,有谁能建议一种简单的方法,使从DataGridViewComboxCell派生的类具有与DGVButtonCell相同的响应级别吗?

尝试将EditMode设置为Editonner(在代码中或DataGridView的属性页上)。这将在第一次单击时打开它

dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;

以上答案会在行选择上产生问题

您可以通过订阅网格的EditingControlShowing事件和ComboBox类型的控件来实现这一点

ComboBox ctl = e.Control as ComboBox;
ctl.Enter -= new EventHandler(ctl_Enter);
ctl.Enter += new EventHandler(ctl_Enter);
在Enter事件中,使用属性

void ctl_Enter(object sender, EventArgs e)
{
    (sender as ComboBox).DroppedDown = true;
}
DroppedDown指示是否显示下拉区域,因此无论何时输入控件,都会将其设置为true并显示项目,而无需进一步单击