
こんにちは。
XP(SP2),VB6(SP6)で
親フォーム -> 子ダイアログ -> 孫ダイアログを表示する処理を作成し実行すると、
子ダイアログを閉じた際、親フォームが他のアプリケーションの下
にもぐってしまいます。
(例えばメモ帳上で実行して、子ダイアログを閉じた時にメモ帳の下に隠れてしまう、デバッグ時ならばVBの下に隠れる)
孫ダイアログを表示させずに、子を閉じるとこの様に減少は起こりません。
なぜこの様になるのでしょうか?
又、回避策はあるでしょうか?ご存じの方、教えてください。
以下、現象再現用のテストプログラムです。
親フォーム
Private Sub Command1_Click()
dlg1.Show vbModeless, Me
End Sub
子ダイアログ(dlg1)
Private Sub Command1_Click()
dlg2.Show vbModal, Me
End Sub
Private Sub CancelButton_Click()
Unload Me
End Sub
孫ダイアログ(dlg2)
Private Sub CancelButton_Click()
Unload Me
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
親子関係ではなく モードレスかモーダルかの違いだと思いますよ
モーダルの場合(子から孫)は孫を閉じない限り子は操作ができません
モードレスの場合(親から子)は子を閉じなくても親の操作が可能です
モードレスの場合はプログラムの組み方によっては複数の子の生成も可能です
親 > 子 > 孫 が常に1つしか存在しないのなら
親で子を生成する際のコードを モードレスにしてみてはいかがでしょう
'親フォーム
Private Sub Command1_Click()
dlg1.Show vbModal, Me
End Sub
といった具合で …
どーしてもモードレスにしなければいけないのであれば
WinAPIの AttachThreadInputとSetForgroundWindowなど組み合わせて
前面への移行処理が必要になると思います
# AttachThreadInputには ThreadIdが必要になるので
# 現在の最前面のウィンドウハンドルなどから取得する必要が出てきます
# AttachThreadInput 最前面 などキーワードに検索してみましょう
今回の動作については子ダイアログUnload時に
親Windowにフォーカスを当てることで回避できました。
何故、下にもぐるのかはわからずじまいでしたが・・・
AttachThreadInputは知らなかったため、
参考になりました、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) vba Sleep関数について教えてください 1 2023/01/18 10:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
このQ&Aを見た人はこんなQ&Aも見ています
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。
-
【お題】動物のキャッチフレーズ
【お題】「百獣の王 ライオン」「実は動物界最強 カバ」は分かるけど、それはちょっとピンと来ないなと思った動物のキャッチフレーズ
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
あなたが好きな本屋さんを教えてください
どのくらいの規模間で、どのような本が並んでいるか、どのような雰囲気なのかなどなど...
-
[VB6] フォームを閉じる方法について
Visual Basic(VBA)
-
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
スプレッドシート
Visual Basic(VBA)
-
-
4
なかなか、Zオーダーが理解できません。
Visual Basic(VBA)
-
5
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
6
Refreshメソッドの使い方
Visual Basic(VBA)
-
7
VBの「As String * 128」とは?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
卒業式でこっそりできる暇つぶ...
-
デブの女性を見るとイライラし...
-
旦那より私の方が性欲が強いで...
-
台湾の女性とsexをしたのですが...
-
家で全裸っておかしいですか? ...
-
女装してます‼…この画像ご覧な...
-
男性は… 密かに好きな女性がい...
-
両親の大人の玩具を見つけてし...
-
靴は左右ペアで一足二足と数え...
-
pit to pit って
-
『~のは』と『~のが』という...
-
服の切れ込みの、スリッドと、...
-
体型にうるさい彼氏
-
最近、彼氏に服の上から胸を揉...
-
息子が女装しています。 息子は...
-
メゾピアノやファミリアの服い...
-
行為をするとき、下半身しか脱...
-
息子たちの生活態度への対応
-
家に落ちてる見に覚えのない髪...
-
28歳で、中学生や高校生に見ら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
旦那より私の方が性欲が強いで...
-
デブの女性を見るとイライラし...
-
台湾の女性とsexをしたのですが...
-
男性は… 密かに好きな女性がい...
-
家で全裸っておかしいですか? ...
-
着丈って?着幅って?
-
『~のは』と『~のが』という...
-
息子が女装しています。 息子は...
-
女装してます‼…この画像ご覧な...
-
pit to pit って
-
両親の大人の玩具を見つけてし...
-
服の切れ込みの、スリッドと、...
-
デブすぎる彼と距離を置きたい
-
ガードレールの白い粉の落とし方
-
靴は左右ペアで一足二足と数え...
-
『衣装を着用する』の『着用』...
-
フリースについた落ち葉のとり方
-
つんつくてん とはどういう意味?
-
靴クリームを革ジャンに使用し...
-
28歳で、中学生や高校生に見ら...
おすすめ情報