如何让DataGridView组合框一键显示下拉列表?

Isa*_*ger 5 .net c# datagridview winforms datagridviewcomboboxcell

在我将"EditOnEnter"设置为true后,DataGridViewComboBoxCell如果我没有单击组合框的向下箭头部分,仍然需要两次单击才能打开.

任何人都有任何线索如何解决这个问题?我有自己的DataGridView课程,所以我可以通过一些智能事件处理程序轻松解决系统问题.

谢谢.

Cod*_*ray 6

既然你已经拥有DataGridView的EditMode属性设置为'EditOnEnter’,你可以重写它的OnEditingControlShowing方法,以确保作为一个组合框获得焦点尽快所示的下拉列表:

public class myDataGridView : DataGridView
{

    protected override void OnEditingControlShowing(DataGridViewEditingControlShowingEventArgs e)
    {
        base.OnEditingControlShowing(e);

        if (e.Control is ComboBox) {
            SendKeys.Send("{F4}");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

只要控件中的编辑控件DataGridView获得输入焦点,上面的代码就会检查它是否是一个组合框.如果是这样,它实际上"按下" F4键,这会导致下拉部分扩展(当任何组合框具有焦点时尝试它!).这有点像黑客,但它就像一个魅力.