0

我正在编写一个在条形码扫描仪上运行的 Windows 窗体应用程序。
工厂形式为 .Net2.0CF/C#。

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

但通常用户会继续扫描下一个内容,因为他们没有发现任何问题,这将插入一个Enter 按键,因此消息框将被关闭,一句话,消息框不会阻止用户。

我该如何编码?下面是一个非常简单的代码片段

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

1 回答 1

1

您可以创建自己的窗口(表单)来显示错误消息,但不会对回车键做出反应。

它应该包含一个用户可以单击的按钮(如您所写),但是您需要确保在显示窗口时该按钮没有焦点。(因为如果它有焦点,按返回键将“单击”按钮。)

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

此外,也许你可能想做一个

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

在显示窗口时将用户的注意力吸引到窗口上。

于 2013-04-02T09:51:54.537 回答