MDIの子フォームでフォーカスアウトを制御したい
VB2005で開発を行っています。
・MDIの子フォームA、Bが存在します。
・子フォームA、Bともに、表示されています。
・子フォームAにはテキストコントロールAA、ABの2つが存在します。
・テキストコントロールAAのLostFocus()に、テキストコントロールAA.Focus()が
記されています。
この状態で、子フォームAのテキストコントロールAAからABへフォーカスが移った時、
コントロールAAのLostFocus()で制御するのはうまくいきます。
が、子フォームAのテキストコントロールAAから子フォームBへフォーカスが移った時、
コントロールAAのLostFocus()が動作しますが、無限ループっぽい動きに陥ったり、
子フォームAにフォーカスが設定されません。
子フォームを最小化させたり、全然関係のないアプリケーションやデスクトップに
フォーカスを遷移したあとにフォーカスを戻してみても同じような現象になります。
イメージとしては、フォーカスアウトでエラーになったんだから、フォーカスを移し
たくないです。
Private Sub ControlAA_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs)
If "".Equals(ControlAA.Text) Then
MessageBox.Show("hoge")
ControlAA.Focus()
Return
End If
End Sub
フォーカスアウト時に項目チェックなどをやる関係で、どうしてもLostFocus()上で
処理をやらなければならないと思われるのですが、フォーカスアウトされた時のオペ
レーションの違いに限らず上手く制御させる方法はありませんでしょうか?
調べてはみましたが、MDIの概念でそもそもそういうことするなというような事らしいですが、
フォーカスアウト時に検索処理が走るというような仕様の為、どうしても解決させたいです。
No.1ベストアンサー
- 回答日時:
> フォーカスアウト時に項目チェックなどをやる関係で、どうしてもLostFocus()上で
> 処理をやらなければならないと思われるのですが、フォーカスアウトされた時のオペ
> レーションの違いに限らず上手く制御させる方法はありませんでしょうか?
Validatingイベントを使えばいいってことでは。
この回答への補足
e.Cancel = True
ということですよね?
これをしても、確かにコントロールにフォーカスがあたっているのですが、
子フォーム自体がアクティブ状態にならず、全てが解決するような動作とは
なってくれませんでした。
それと子フォームのせいなのか、LostFocus()内でコントロールへフォーカス
セットしているせいなのか、LostFocus()がやたら頻繁に動作し、
Validating()イベントを記せば解決するようではないようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- 一眼レフカメラ 一眼レフ Canon 5D mark4 の4K動画撮影 ピントが背景に持っていかれる 2 2023/05/10 22:52
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- その他(IT・Webサービス) micro soft teamsのカメラ設定について 1 2023/05/25 18:07
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- 哲学 他人の評価を気にするなより 他人の評価を覆すほどもしくは別軸で己惚れた方がいいが得な気がする 7 2023/02/17 23:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
テキストボックスからフォーカ...
-
VB.NET でのLaod/unLoad につ...
-
NumericUpDownの数値を選択済み...
-
VB.NETのテキストボック...
-
eclipseのナビゲーターの設定に...
-
ヒント表示について
-
シリアル通信について
-
エアー漏れの流量の計算式を教...
-
CPUを2個搭載できるマザーボー...
-
CD-RWメディアにマジックで書い...
-
Movable Type 3.11-jaの文字化け
-
充電式インパクトドライバ-の...
-
Windowsが安全なUNIXを使わない...
-
C++の例外処理
-
自動ドアのセンサーの変更
-
3dsのデータバックアップでマイ...
-
eclipsのホワイトスペースで
-
word
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
VB.NET でのLaod/unLoad につ...
-
フォームを開く時のイベント処理
-
VB.NETのテキストボック...
-
テキストボックスからフォーカ...
-
一部の文字のみ文字化けします
-
項目数は英語で
-
エアー漏れの流量の計算式を教...
-
コンピュータ言語paythonのエデ...
-
vba メモリーリーク
-
ヒント表示について
-
C#での変数スコープ?
-
C++の例外処理
-
受け取った値が"undefined"と表...
-
シリアルフラッシュメモリをな...
-
globalと$GLOBALSの違いは?
-
ブック開いたときのフォーカス指定
-
宮迫のフライデー、誰がリーク...
おすすめ情報