我正在使用DataGridViews
. 其中一个DatagridView
是DataGridViewTextBoxColumn
,它可以被用户编辑。当用户在其中输入完数字后,他按键盘上的 ENTER 键。现在DataGridView
一切都完成了Events
,毕竟Events
,最后一件事是问题所在。
一切都完成了,Windows 将选择下一个DataGridViewRow
,我无法阻止这种情况。
我试过了
if (e.KeyData == Keys.Enter) e.SuppressKeyPress = true; // or e.Handled
在我发现的几乎所有事件中。可悲的是,我只能在DataGridViewTextBoxColumn
不处于编辑模式时阻止 ENTER 键。
这是我在编辑时找到 ENTER 的方法
添加事件
private void dgr_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress += new KeyPressEventHandler(dgr_KeyPress_NumericTester);
}
这是仅接受数字输入的事件。
private void dgr_KeyPress_NumericTester(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8) e.Handled = true;
}
详细解释:
当用户输入一个有一些依赖的值时,我想给另一个控件焦点,所以他习惯于纠正依赖。
我也试过了,DependingControl.Focus()
但最后一个“输入”将是视图中的最后一件事。
有人知道如何防止这种情况吗?