VB.NET のLostFocus GotFocusについて

とりあえず、まずは私の結論
GotFocusイベントは使うなっ! Enterイベントを使えっ!
LostFocusイベントは使うなっ!Leaveイベントを使えっ!



"推奨"でも"出来れば"でもありません。
"やむ終えない理由があって…"でも駄目です。
ただし、今後.Net Framework が Updateされて方針が変わったらこの限りではない。



さて、なぜこんな話になったかというと、

VB.NET を最近やってるのだが、 LostFocusを無理やり使っているソースに出くわした。

Formのイベントプロパティには、Leaveイベントは出てくるが、LostFocusイベントは表示されない。

で、調べてみたところ、イベントの発生順番が違うらしい。




それはいい…だが、多数のページを見てみても、

「イベントの順番が違うから気をつけてねー」
「イベントの順番はこうだよー」

という記事はたくさんあるのに、

「LostFocusイベントでは無く、Leaveイベントを使えっ!」
という記事がほぼ無い。なぜ?


なぜLeaveイベントが良いのか。

1.Visual Studio のフォーム作成用画面のイベントプロパティに出てきてない。
  ⇒ LostFocus イベントを使って欲しくないというマイクロソフトの意思表示。
2.ユーザーのフォーカスアウト操作を気にしながらコーディングするのはバグの元。
  ⇒ Validating、または Validated イベント を処理した時にバグになりやすい。


主にこの2点だと思う。
1.については、判りやすくこのHP(有名)に書いてある。
 http://dobon.net/vb/dotnet/vb6/gotfocusevent.html

2.は当たり前だわな。


以上。

やっぱりVBって嫌いだわ…
違うな、このソースを書いたプロジェクト関係者が嫌いだ…会ったこと無いけど…

コメント

このブログの人気の投稿

ヨドバシカメラの店舗購入履歴を見るには…

C# の WPF の DataGrid で 行を交互に背景色を変える+選択色を変える+カラムが無い所も変える…

Visual Studio の ホットリロードが動かない場合に確認するところ