【发布时间】:2019-02-14 17:14:57
【问题描述】:
我正在尝试从 datagridview 中禁用 tab 键,同时在其上创建我自己的事件。此外,如果可以禁用上、下、右、左和输入键。 加载事件
this.dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
在 KeyDownEvent 上
private void gridInvoice_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab)
{
//SelectNextControl(dataGridView1, true, true, true, true);
// or Parent.SelectNextControl() if the grid is an only child, etc.
e.Handled = true;
}
}
使用 Tab 键上方的代码,它可以工作。我移动到下一个单元格。我怎样才能防止这种情况发生?
【问题讨论】:
-
因为您有
DataGridViewEditMode.EditOnEnter,所以关键事件由 DGV 编辑控件处理:DGV 不会引发 KeyDown/PreviewKeyDown 事件。您可以实现自己的编辑控件。见IDataGridViewEditingControl。但很大程度上取决于您想要覆盖哪些行为以及这些覆盖何时应该处于活动状态。