|
▼クロ さん:
>こんにちは、クロです。
>
>▼なとり さん:
>>現在、複数の画面を作成し、画面遷移を行っています。
>>(メニュー画面から処理画面に遷移するといった感じです。)
>
>この方法を詳しく書かれたほうがよいかと...
こんにちは、クロさん ご指摘ありがとうございます。
そして、説明内容が不足していまして、すみませんでした。
画面遷移の方法を補足いたします。
1.メニュー(A画面)から一覧画面(B画面)を開く
2.処理画面(C画面)を開く
3.C画面を閉じる
4.B画面を閉じる
というような、画面遷移を行っていて、呼ばれたフォーム(全画面)は
"DoCmd.Maximize" を行っています。
(今は"Form_Activate"で行っています。)
上記の1〜4の動作を行うと、
1は、ちょっとだけB画面が大きくなる瞬間が見えます。
2は最大化される瞬間は、ほとんど見えません。(画面がチラつく程度)
3はちょっとだけB画面が大きくなる瞬間が見えます。
4は最悪です。A画面が最大化されるのが、かなり見えます。
(表現が難しかったので、このような記述になりましたが、
これで、伝わるでしょうか?)
原因?は別のフォームが最大化されると、(または非アクティブになると?)
最大化表示が解除され、アクティブになるときに最大化される。
ということだと思っています。
下記はフォームをオープン/クローズするために使用しているコマンド
です。
1)のB画面オープン方法
DoCmd.OpenForm "B画面", , , acFormEdit
2)のC画面オープン方法
DoCmd.OpenForm "C画面", , , stLinkCriteria
※stLinkCriteriaはC画面で表示するレコードの条件
3)のC画面クローズ方法
DoCmd.Close acForm, Me.Name
※B画面を呼ぶような処理はしていません。
4)のB画面クローズ方法
DoCmd.Close acForm, Me.Name
※A画面を呼ぶような処理はしていません。
最初は、Form_Load時に重たい処理しているせいで、起きているのかと
思っていましたが、戻ってきたときには、Form_Load部分は処理されて
いませんでした。
また、A画面の"Form_Activate"では、なにも処理していません。
プロパティでなにか設定があるのではと、色々といじくってみましたが、
現象は解決できません。
画面遷移の時に最大化されるのを表示しない方法はないものでしょうか?
説明が上手にできないので、ご迷惑をおかけしますが、よろしくお願いします。
|
|