-PR-
締切済み

フォームのアクティブと非アクティブ表示について

  • すぐに回答を!
  • 質問No.92517
  • 閲覧数1415
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 30% (13/43)

Form1からForm2を表示するという処理を以下のようにコーディングしてみました。

**Form1.frm***

Private Sub Command1_Click()
Form1.Hide
Form1.vbModal
Form1.Show
End Sub

**Form2.frm***
Private Sub Command1_Click()
Unlaod Me
End Sub

画面にエクスプローラ等のウィンドウが表示されているときに、Form2を表示させようとすると非アクティブ状態で表示されてしまいます。
また、Form2をUnloadするとForm1が表示されるのですが、その際に、Form1のタイトルと、タスクバーに表示されているボタンが反転した後非アクティブ状態になってしまいます。

フォームは常にアクティブで表示させたいのですが、どうすればよいのでしょうか?
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル10

ベストアンサー率 25% (29/115)

えと、やりたいことと、現状がまだよくわからないので、当てずっぽうなんですけど・・・ From2のUnloadの直前に Form1.SetFocus してみたらどう? これは、 >Private Sub Command1_Click() >Form1.Hide >Form1.vbModal >Form1.Show >End Sub ...続きを読む
えと、やりたいことと、現状がまだよくわからないので、当てずっぽうなんですけど・・・

From2のUnloadの直前に
Form1.SetFocus
してみたらどう?

これは、

>Private Sub Command1_Click()
>Form1.Hide
>Form1.vbModal
>Form1.Show
>End Sub

こうなのかな?

Private Sub Command1_Click()
Form1.Hide
Form2.Show vbModal
End Sub

当たった?
補足コメント
terako

お礼率 30% (13/43)

すいません。コード書き間違えてました・・・。

Private Sub Command1_Click()
Form1.Hide
Form2.Show vbModal
Form1.Show
End Sub

でした。
投稿日時 - 2001-06-19 17:48:18
関連するQ&A


  • 回答No.2
レベル10

ベストアンサー率 25% (29/115)

j_euro ふたたびです。 そいで・・ これ >From2のUnloadの直前に >Form1.SetFocus は、どうでしたか? つまり、ここを >>**Form2.frm*** >>Private Sub Command1_Click() >>Unlaod Me >>End Sub こうやる * ...続きを読む
j_euro ふたたびです。

そいで・・
これ
>From2のUnloadの直前に
>Form1.SetFocus
は、どうでしたか?

つまり、ここを
>>**Form2.frm***
>>Private Sub Command1_Click()
>>Unlaod Me
>>End Sub

こうやる
**Form2.frm***
Private Sub Command1_Click()
Form1.SetFocus
Unlaod Me
End Sub

すなわち
>フォームは常にアクティブ
(「常に前面」じゃなくてね)
のためには、他のフォームが終わるときに、目的のフォームにフォーカスをセットする。
  • 回答No.3
レベル7

ベストアンサー率 77% (14/18)

多分、Form1をHideした時点で、そのアプリケーションには 画面が一つもない状態になるので、別アプリにフォーカス が移動してしまいます。 そこからForm2を表示するので、Form2が非アクティブな状 態で表示されてしまうのでしょう。 で、Form1を消すつもりならForm1をModalで表示する必要 はないと思います。 **Form1.frm*** Private Sub ...続きを読む
多分、Form1をHideした時点で、そのアプリケーションには
画面が一つもない状態になるので、別アプリにフォーカス
が移動してしまいます。
そこからForm2を表示するので、Form2が非アクティブな状
態で表示されてしまうのでしょう。

で、Form1を消すつもりならForm1をModalで表示する必要
はないと思います。

**Form1.frm***
Private Sub Command1_Click()
  Form2.Show vbModeless
  Form1.Hide
End Sub

**Form2.frm***
Private Sub Command1_Click()
  Unload Me
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Form1.Show
End Sub

で、どうでしょうか?
  • 回答No.4
レベル9

ベストアンサー率 57% (24/42)

私の環境ではそのような現象は起きません。 何度も Form1 <-> Form2 をやっても 両フォームともちゃんとアクティブ状態になります。 なので、環境のせいではないでしょうか? 使用しているOS及び、VBのバージョン、サービスパック等は どのようになっていますか? 最新のサービスパックはあたっていますか? ちなみに私の環境は以下の通りです。 OS:WinNT4.0 SP6a V ...続きを読む
私の環境ではそのような現象は起きません。
何度も Form1 <-> Form2 をやっても
両フォームともちゃんとアクティブ状態になります。
なので、環境のせいではないでしょうか?
使用しているOS及び、VBのバージョン、サービスパック等は
どのようになっていますか?
最新のサービスパックはあたっていますか?

ちなみに私の環境は以下の通りです。
OS:WinNT4.0 SP6a
VB:Ver6.0 SP5
IE:Ver5.5
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ