• ベストアンサー

複数画面の画面遷移

早速質問します。 A,B,Cの3画面があり、それぞれの画面遷移(コマンドボタン押下時)は下のコードで遷移しています。 A→Bに遷移する場合、  Me.Visible=False  B.Show vbModal  Me.Visible=Treu B→Cに遷移する場合、  Me.Visible=False  C.Show vbModal  Me.Visible=Treu このようなコードを記述したら、最終的にCの画面のみが表示されます。 問題はここからで、Cの画面を閉じると、なぜかB画面とA画面の両方が表示されてしまいます。本当であればB画面だけが出て欲しいのですが。 モーダルで起動した画面を、非表示にして再表示した場合モードレスに変わってしまうのでしょうか。また、その回避方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakamaro
  • ベストアンサー率44% (4/9)
回答No.2

下記、参考 URL 以下に同じ問題が記述されています。

参考URL:
http://www7.big.or.jp/~pinball/discus/vb/46218.html
ykazu99
質問者

補足

ありがとうございます。 ただ1つだけ問題があり、通常のWindows画面では問題ないのですが「仮想ディスクトップ」を実行していた場合、ディスプレイ外に移動していた画面が見えてしまいます。 これって、どうすることも出来ないのでしょうか。

その他の回答 (2)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

>B→Cに遷移する場合、 > Me.Visible=False > C.Show vbModal > Me.Visible=Treu の最後がまずいのでは? B→Cに遷移する場合、  Me.Visible=False  C.Show vbModal  Me.Show vbModal ← ここ変更

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

A→Bに遷移する場合、  Me.Visible=False  B.Show vbModal  Me.Visible=Treu 上記を以下のようにしてみてはどうでしょうか?  Me.Visible=False  B.Show vbModal  if b.Visible=false then   Me.Visible=Treu  else   B.Show vbModal   Me.Visible=Treu  end if 未確認ですみませんが・・・。

ykazu99
質問者

補足

早速試したところだめでした。 C画面を閉じたところで、B画面とA画面が表示されてしまい、教えていただいたコードの「B.Show vbModal」で「B画面は既に表示されています(Error=400)」のエラーとなってしまいます。

関連するQ&A