LostFocusよりもボタンクリックを優先するには?

解決


FAN  2003-05-23 18:22:47  No: 107253

フォームにテキストボックスとボタンがあるとして、テキストボックスのLostFocusイベントに数字6桁以外はエラーのメッセージボックス&SetFocusとしています。ボタンはフォームをアンロード(終了)するのですが、テキストボックスのLostFocusと競合してしまってアンロードできません。どなたかLostFocusよりもキャンセルを優先される方法を教えてください。


Say  2003-05-23 19:24:09  No: 107254

それは競合ではなく、仕様の問題です。
「6桁入力しない限りほかの処理を受け付けない」仕様に
作ったため、ボタンが押せないだけのことです。

対策としては、
●運用でカバー
  「終了したかったら何でもいいから6桁入れる」よう
  ユーザに徹底すれば問題は解決します。
●終了ボタンをつけない
  右上の「×」ボタンで終了するようにすれば問題は解決します。
●LostFocusで入力チェックしない。
  たいていの場合、データ入力のあと、何らかの「処理」が発生します。
  その「処理」を実行ボタン押下で行うようにし、
  「処理」の最初に入力チェックを一括して行い、
  エラーが見つかったら、該当コントロールにSetFocusし、
  「処理」を中断します。
●Focusをもたないコントロールで代用する。
  たとえばImageコントロールにボタンの絵を描いて、
  そのクリックイベントにUnloadを記述します。
  「ボタンのへこみ」の処理を自前で用意する必要があります。
  (MouseDown/Upで絵をすげかえるとか。)

おすきな方法をどうぞ。


FAN  2003-05-26 17:41:14  No: 107255

実行時にチェックするようにしました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加