想要通过消息框阻止用户输入,但通过按下Enter键来绕过

本文关键字:Enter 用户 消息 输入 | 更新日期: 2023-09-27 18:07:05

我正在编写一个运行在条形码扫描器上的windows窗体应用程序。
平台为。net 2.0 cf/c#。

我想要的是每当用户输入错误时,应用程序将弹出一个消息框并阻止下一个输入(实际上,一个扫描动作),直到用户单击屏幕上的OK。

但通常情况下,用户会不断扫描下一个东西,因为他们没有发现任何问题,这将插入一个输入keydown所以消息框将被关闭,总之,消息框不会阻止用户。

我怎么写这个?下面是一个非常简单的代码片段

private void tb_KeyDown(object sender, KeyEventArgs e)
{
  if (e.KeyCode.ToString() == "Return")
  {
    if(!ValidateInput(tb.Text))
    MessageBox.Show("Error");
  }
}

想要通过消息框阻止用户输入,但通过按下Enter键来绕过

您可以创建自己的窗口(窗体),显示错误消息,但不响应输入键。

它应该包含一个按钮,用户可以点击(如你写的),但是你需要确保按钮没有焦点时,窗口显示。(因为如果它有焦点,按回车键会"点击"按钮。)

一个简单的方法是添加另一个控件,TabStop设置为true(例如一个文本框,另一个按钮),TabIndex属性低于按钮。

另外,也许你想做一个

System.Media.SystemSounds.Beep.Play();