如何避免双击DropDownButton
中使用的DataGridView
?现在,我可以通过点击两次或更多次来查看DataGridView
中的下拉项。第一次选择单元格,第二次单击DropDownButton
箭头时,它会显示列表。如何通过一次点击实现同样的目标?
答案 0 :(得分:18)
将EditMode
的{{1}}属性设为DataGridView
:link
EditOnEnter
- 获取或设置一个值,指示如何开始编辑单元格。
DataGridView.EditMode
- 当单元格获得焦点时开始编辑。
答案 1 :(得分: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并显示项目而无需进一步点击。
答案 2 :(得分:6)
“将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键删除一行。
就是这样。