0

バーコード スキャナーで実行されている Windows フォーム アプリケーションをコーディングしています。
プラントフォームは .Net2.0CF/C# です。

私が望むのは、ユーザーの入力が間違っているときはいつでも、ユーザーが画面で [OK] をクリックするまで、アプリがメッセージボックスをポップして次の入力 (実際にはスキャンアクション) をブロックすることです。

しかし、通常、ユーザーは何も問題が見つからなかったので、次のものを継続的にスキャンします。これにより、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

エラー メッセージを表示する独自のウィンドウ (フォーム) を作成できますが、Enter キーには反応しません。

(書いたように)ユーザーがクリックできるボタンが含まれている必要がありますが、ウィンドウが表示されているときにボタンにフォーカスがないことを確認する必要があります。(フォーカスがある場合、リターンキーを押すとボタンが「クリック」されるためです。)

これを行う簡単な方法は、TabStop を true に設定し (テキスト ボックス、別のボタンなど)、ボタンよりも低い TabIndex プロパティを持つ別のコントロールを追加することです。

さらに、おそらくあなたはしたいかもしれません

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

ウィンドウにユーザーの注意を引くためにウィンドウを表示するとき。

于 2013-04-02T09:51:54.537 に答える