2009-11-19 29 views
0

我已经构建了一些WinForms应用程序,它们使用DataGridView网格与组合框列。这些控件的用户交互似乎存在一个基本缺陷。通常,我的观众由业务用户组成,他们执行键盘驱动布局,他们希望在遇到下拉控件时自动完成选择。有效的WinForms自动完成DataGridViewComboBoxColumn

我见过2个与此控件类型基本问题:

  1. 当控件获得焦点的制表位,它不会立即进入自动完成模式,用户必须不甘示弱,通常通过击中一个空格或几个击键。
  2. 有时控件似乎有自动完成选择,但当选项卡被击中时,选择清除。这绝对是一个问题,你在网格中连续有2个控件。

我知道一种解决方案是使用不同的控制库。不久之后,我希望能够使用WPF进行实时项目,但未来几年仍会有WinForm维护。我已经尝试了许多对自动完成和下拉式样设置的调整,但是我从来没有想出一个真正适用于基于高级用户级键盘的数据输入的配置。

有什么建议吗?

回答

1

那么,对于第一个问题,你是否将DataGridView.EditMode设置为DataGridViewEditMode.EditOnEnter?

至于第二,如果ComboBox列的开箱即用编辑控件没有按照您的要求做,您总是可以使用IDataGridViewEditingControl接口来自定义。

+0

不知道我是如何错过了!它看起来像EditMode中的更改也解决了第二个问题,但仍然存在一个未解决的问题:如果组合框位于第一列,且焦点以编程方式设置为网格,则不会触发编辑模式。这是一个似乎受EditMode更改影响的新问题。 感谢您的帮助! –

+0

尝试在编程焦点后显式调用DataGridView.BeginEdit。 –