DropDownButton
如何避免在 a中使用的双击DataGridView
?现在,我可以DataGridView
通过单击两次或多次来查看其中的下拉项目。第一次选择单元格,第二次单击DropDownButton
箭头时,它显示列表。如何通过单击实现相同的目标?
问问题
22252 次
3 回答
19
设置toEditMode
的属性:链接DataGridView
EditOnEnter
DataGridView.EditMode
- 获取或设置一个值,该值指示如何开始编辑单元格。
EditOnEnter
- 当单元格获得焦点时开始编辑。
于 2013-01-23T15:22:33.763 回答
15
您可以通过订阅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 并显示项目而无需进一步单击。
于 2011-06-14T10:59:02.987 回答
7
“将 DataGridView 的 EditMode 属性设置为 EditOnEnter”对我有用,但我发现了另一个问题:用户不能通过选择并按下 DEL 键来删除一行。所以,谷歌搜索给了我另一种方法。只需捕获事件 CellEnter 并检查单元格是否是适当的类型以执行适当的操作,如以下示例代码:
private void Form_OnLoad(object sender, EventArgs e){
dgvArmazem.CellEnter += new DataGridViewCellEventHandler(dgvArmazem_CellEnter);
}
void dgvArmazem_CellEnter(object sender, DataGridViewCellEventArgs e)
{
DataGridView dg = (DataGridView)sender;
if (dg.CurrentCell.EditType == typeof(DataGridViewComboBoxEditingControl))
{
SendKeys.Send("{F4}");
}
}
现在 ComboBox 下降得更快,用户仍然可以通过选择一行并按 DEL 键来删除一行。
就是这样。
于 2013-07-29T05:36:16.253 回答