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って嫌いだわ…
違うな、このソースを書いたプロジェクト関係者が嫌いだ…会ったこと無いけど…
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って嫌いだわ…
違うな、このソースを書いたプロジェクト関係者が嫌いだ…会ったこと無いけど…
コメント
コメントを投稿