テキストボックスの入力チェック結果によってフォーカスを移動させない処理を入れたい


ABC  2009-06-23 04:16:27  No: 145988

VB.NET2005  XPpro

フォーム上にテキストボックス、リストビューコントロール、コンボボックスなどがあります。

テキストボックスで入力された値をLeaveイベントにてチェックさせ、エラーの場合は、そのテキストボックスにFocusさせます。

ここで問題なのは、テキストボックスに入力エラーとなる値を入れ、リストビューコントロールの余白(?アイテムがない部分)をクリックすると、テキストボックスのLeaveイベントが2回発生します。
その後、リストビューコントロール上でマウスダウン状態(リストアイテムを複数選択するときの枠が表示される)となってしまいます。

他のテキストボックスや、コンボボックスをクリックしたときは、Leaveイベントは1回しか発生しません。
また、リストビューコントロールでも、追加されているアイテムをクリックした場合は、Leaveイベントは1回しか発生しません。

Leaveイベントをどの場合でも、1回のみ発生させるようにするにはどうしたら良いのでしょうか?

よろしくお願いします。


太郎冠者  2009-06-23 06:44:41  No: 145989

検証が目的ならValidating イベントの方がいいのでは

http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.validating(VS.80).aspx


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

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






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