当用户点击小键盘Enter键时,如何发送单个Downkey键?

Onl*_*ere 5 .net c# datagridview key winforms

这纯粹是出于我的客户问我的可用性要求.

他们使用datagridview为学生输入成绩.因此他们几乎进入了僵尸模式并开始使用数字,他们告诉我,如果他们可以点击小键盘输入键以使下一个垂直选择集中,那将会更容易.

这是我尝试使用的内容:

private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        SendKeys.Send("{DOWN}");
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有按预期工作.有时它似乎会多次触发该键,导致焦点向下滚动2或3或4个单元并真正震动用户的焦点.

我怎样才能做到这一点,让我的客户满意?

Snu*_*kus 0

您可以使用一个布尔值,在 keyDown 上设置为 true,在 keyUp 上设置为 false。

仅当布尔值为 true 时才运行 sendKeys.Send。这应该确保每次按键时仅触发该事件一次。

这通常是我在其他语言中看到的完成方式,我不确定是否有更好的方法在 C# 中完成。