• 締切
  • すぐに回答を!

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

  • 質問No.92517
  • 閲覧数1453
  • ありがとう数4
  • 回答数4

お礼率 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件)

  • 回答No.4

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

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

ちなみに私の環境は以下の通りです。
OS:WinNT4.0 SP6a
VB:Ver6.0 SP5
IE:Ver5.5
  • 回答No.3

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

多分、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.2

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

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.1

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

えと、やりたいことと、現状がまだよくわからないので、当てずっぽうなんですけど・・・

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
関連するQ&A

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

ピックアップ

ページ先頭へ