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


ABC  2009-06-22 19:16:27  No: 145988  IP: 192.*.*.*

VB.NET2005  XPpro

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

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

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

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

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

よろしくお願いします。

編集 削除
太郎冠者  2009-06-22 21:44:41  No: 145989  IP: 192.*.*.*

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

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

編集 削除