2009-05-20 4 views
1

私のフォームのフィールドの1つは、ユーザーがIDを入力するテキストボックスです。これは別のテーブルへの外部キーなので、データを送信する前にそのテーブルに対してデータをバウンスする必要があります。私はむしろ、彼らが別のクエリが発生するかもしれないので、textchangedを使用しないでください。フォーカスが失われるのは、エラーを表示するか、すでに別のフィールドに入っているときに検証するだけです(単にsubmitをクリックした場合、データベースに対するvb.netのテキストボックスの検証?

誰かがそのフィールドにとどまるように強制するのは好きではありませんが、これが最善の方法でしょうか?

スリープ状態になり、X秒以内に別の受信キーイベントがあるかどうかを確認する方法はありますか?そうであれば、それが文字か数字かタブかリターンかを調べることができますか?

ユーザーフレンドリーな別のイベントがありますか?

テーブルのその列のコピーをプルダウンしてリアルタイムで比較しますか? (新しいキャッシュを取得するためにリフレッシュボタンを追加することができます)

答えて

1

このためにタイマーコントロールを使用することを検討してください。

キーを押すたびにコントロールを無効にして有効にし、タイムアウトをリセットします。

次に、タイマーイベントが発生すると、コントロールを無効にしてデータベースを照会します。

編集: 私はまだあなたの最善の策はおそらくロストフォーカスのイベントだと思います。

+0

フォーカスイベントが失われているように見えます。サーバーからの応答が速いので、ユーザーのマシン上で何が起こるかわかりません。ユーザーがフォーカスを切り替えようとしていたところで失われたフォームを無効にするので、私はそのフィールドを一時的に無効にしています。 – Maslow

関連する問題