- PR -

LostFocus と validating の発生順

投稿者投稿内容
Tkane
会議室デビュー日: 2007/05/31
投稿数: 13
投稿日時: 2007-05-31 16:55
>よねKEN
アドバイスありがとうございます。

Leaveイベントの場合でも、
マウス移動時は「Leave→Validating」になってしまうようなので、
確実にValidatingの後処理を動かす為に、「Validated」に変更するという
対応にしました。

皆様いろいろありがとうございました。
Tkane
会議室デビュー日: 2007/05/31
投稿数: 13
投稿日時: 2007-05-31 18:07
あ、勘違いです。
マウス移動時、Tab時共に、「Leave→Validating」でした。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-31 22:21
引用:

Tkaneさんの書き込み (2007-05-31 11:35) より:
どうしてこのページを探せなかったのだろうか・・・


 「MSDN ライブラリ」のページから検索した場合と、マイクロソフトのトップ ページから検索した場合とで、検索結果が異なりました。
 MSDN ライブラリから、「MSDN ライブラリを検索」を使用すると、旧ライブラリ(msdn.microsoft.com)から検索するようです。

 当面、「マイクロソフト サイトの検索:」を使用し、検索結果が msdn2.microsoft.com であることを確認しましょう。
(あ、1.x か。見比べてみましょう、かな?)
とりあえず、「要望・ご意見」から、「msdn2 から探さんかい(゚Д゚)ゴルァ!」と連絡しておきました。

Hongliangさんの「.NET 1.1 日本語版は Web に存在していない」を見て、「あるよ〜」と思って検索して、気がついた。
でも、1.1 の時から書いてあったと思ったんだけどなぁ???


_________________
saki1208
ベテラン
会議室デビュー日: 2006/08/22
投稿数: 86
投稿日時: 2007-06-01 00:10
saki1208です。

MSDNライブラリを確認されたとのことで、もう解決しているかもしれませんが...

キーボード操作によるフォーカスの遷移では、実際にフォーカスが移動する前に、
「今からフォーカスが移動するぞっ」てのがわかりますよねぇ。
でも、マウス操作による移動では、実際にフォーカスが移動しなければ「フォー
カスが移動したことがわからない」と思います。
だって、アクティブではないコントロールがクリック等を受け付けることにより
初めてアクティブだったコントロールがフォーカスを失うのですから...

Spy++などでメッセージを確認すると、MSDNライブラリのイベント発生順に表記
されている順番でメッセージも発生しているはずです。

# 昔々、VB2とか4とかの頃に内輪でかなり議論したので...
# (Validate関連はありませんでしたが)

[ メッセージ編集済み 編集者: saki1208 編集日時 2007-06-01 00:12 ]
Tkane
会議室デビュー日: 2007/05/31
投稿数: 13
投稿日時: 2007-06-01 08:57
> Jitta
・・・いや〜本当に。MSDN2なんて知りませんでしたよ。
いい勉強になりました。

>saki1208
なるほど・・・。VisualStudio2003のヘルプにもマウス移動時には、
発生順が違うなんて書いてないし・・・
でも言われてみると納得です。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2007-06-01 13:24
Jittaさん、こんにちは。

引用:

Hongliangさんの「.NET 1.1 日本語版は Web に存在していない」を見て、「あるよ〜」と思って検索して、気がついた。
でも、1.1 の時から書いてあったと思ったんだけどなぁ???



確かに日本語版はあるんですが、
「When you change the focus by using the mouse or by calling the Focus method」
な場合のイベント発生順については触れられていないんですよね(2007-06-01現在)。
手元の MSDN Library 2006 年 1 月版には記述があるので、「.NET 1.1 日本語版の最新(最終)版は Web に存在していない」という意味だったのかも知れません。

スキルアップ/キャリアアップ(JOB@IT)