フォームが裏に隠れるのはなぜ?

解決


ほいこ  2005-02-22 00:26:53  No: 88543

メニュー画面を開いて、コマンドボタンを押すと、処理が実行され、
処理中です。という文字を表示するフォームを開きます。
その後処理が終わると文字を表示したフォームを閉じます。
このとき、メニュー画面が他のアプリケーションの1つ裏に隠れてしまう現象が
おきるんですがなぜでしょうか。
その原因がわからいのでご教授お願いします。

ちなみにソースは
以下のようになります。

★mainフォームでメッセージを表示する処理を呼びます。
 Call pb_ShoriMessage("処理中", KINO_NAME, True)

★標準モジュールにてメッセージの処理を行います
Public Function pb_ShoriMessage(losMesWindow As String, losMesCaption As String, lobOpenClose As Boolean)

If lobOpenClose = True Then
        '処理中メッセージを表示
        Screen.MousePointer = vbHourglass
        pb_MessageWindow losMesWindow
        frmMessage.Caption = losMesCaption
        frmMessage.Show
        DoEvents
    Else
        '処理中メッセージを非表示
        Unload frmMessage
        Screen.MousePointer = vbDefault
        DoEvents
    End If

    ' 戻り値をTrueに設定
    pb_ShoriMessage = True

End Function

★そして他の標準モジュールにて非表示にする処理を呼びます。

Call pb_ShoriMessage("", KINO_NAME, False)

以上よろしくお願いします。


ほいこ  2005-02-22 03:43:45  No: 88544

わたしが考えているのは
メニュー画面が非アクティブになるためだと思いますが、
なぜ非アクティブになるのかがわからないのです。


  2005-02-22 18:44:06  No: 88545

frmMessage.Showで、メニュー画面は非アクティブになります。

メニュー画面だけですか?
APIで、常に手前に画面を表示させる方法もありますが。
ところで、
>★そして他の標準モジュールにて非表示にする処理を呼びます。
って、メニュー画面じゃないんですか?


ほいこ  2005-02-22 20:05:28  No: 88546

影さんさっそくのご回答ありがとうございます。
表示しているのはメニュー画面とこのfrmMessageの2画面です。
その他にアプリケーションが立ち上がっている状態です。

ソースを抜粋しているため、見難くて申し訳ありません。

>★そして他の標準モジュールにて非表示にする処理を呼びます。
って、メニュー画面じゃないんですか?

上記の件ですが、メニュー画面ではないところでfrmMessageを非表示する処理を
呼んでいます。


  2005-02-22 20:21:04  No: 88547

そうなんですか。

恐らくのところ、ほいこさんご推測の通りだと思います。
処理中を表示するフォームを表示してから、非表示にするまでの間に、他のアプリが起動すれば、有り得る現象ではないでしょうか?
(・・・自信無い。間違ってたらごめんなさい m(_ _)m)

API使うのも面倒ですね(僕が嫌なだけで、ネット検索すれば、ひっかかります)。
うーん、じゃあ・・・。

>2005/02/21(月) 15:26:53
のご発言から。
標準モジュール「frmMessage.Show」を、
「frmMessage.Show ,main」に改変してみてはいかがですか?

詳細は、ヘルプの「Showメソッド」を参照して下さい。


ほいこ  2005-02-24 03:18:39  No: 88548

>標準モジュール「frmMessage.Show」を、
>「frmMessage.Show ,main」に改変してみてはいかがですか?

>詳細は、ヘルプの「Showメソッド」を参照して下さい。
これを試してみたところ、やはりメニュー画面が背面に隠れてしまいました。

結局原因はわからず。。。
対処法として
メニュー画面が背面に隠れた後に  frmMain.showを行うことで
前面に表示させました。

影さんいろいろありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加