こんにちは、Kawagoeと申します。
Form1をオープン
↓
Form1のボタンをクリック
↓
Form2をオープン
↓
Form2のボタンをクリック
↓
Form2をクローズ
↓
Form3をオープン
上記のような処理を行っているのですが、Form2をクローズし、
Form3をオープンする際に、Form1がちらっと見えてしまいます。
あまり見栄えがよくないので、ディスプレイの再描画を一時的に
止めたいと考えているのですが、どのようなコードを記述すれば、
一時的に再描画を止めることが出来るのでしょうか。
ご教授の方、よろしくお願いします。
Form1をクローズしていますか?
>上記のような処理を行っているのですが、Form2をクローズし、
>Form3をオープンする際に、Form1がちらっと見えてしまいます。
っと書かれていますが・・・
私的にはForm3をオープンして、Form2をクローズするほうがいいと思います。
VB6ですが。
Form1のボタンをクリック
↓
Form1.Visible = False
↓
Form2をオープン
↓
以下略
とかはどうでしょうか?
適当なタイミングで.Visible = Trueとしてください。
マグさん
zさん
ご教授ありがとうございます。
マグさん
Form1はメインメニューになりますので、システムの終了時のみにクローズしよ
うと考えています。
>私的にはForm3をオープンして、Form2をクローズするほうがいいと思います。
私も、最初はこの様にしようと考えていたのですが、Form3にも「Form2を開く」
というボタンがありまして、この手順を踏むと、このボタンの押下時に、2重立
ち上げになってしまいました。
そこで、先に閉じることにしたのですが。。。。システム的には、あまりよくな
いのでしょうか?
もし、よろしければ、アドバイスいただけると助かります。
zさん
お教えいただいた方法を試したところ、無事にメインメニューのちらつきを無く
すことが出来ました。
ありがとうございました。
お二人とも、ご助言いただき、ありがとうございましたm(_)m
> 私も、最初はこの様にしようと考えていたのですが、
> Form3にも「Form2を開く」というボタンがありまして、この手順を踏むと、
> このボタンの押下時に、2重立ち上げになってしまいました。
ボタン押下時にForm2が開いているかどうかを調べればいいと思います。
Formsコレクションを見てください。
nanashiさん
アドバイスありがとうございます。
Formsコレクションを参考にして、次のようにしたところ、2重立ち上げの
問題を解決することができました。
'========================================
'Form3オープン
'========================================
Private Sub Form_Load()
Dim intI As Integer
'Form2が開いたままだったら解放する
For intI = 0 To Forms.Count - 1
If Forms(intI).Name = "Form2" Then
Unload Forms(intI) '解放
Exit For
End If
Next
End Sub
ありがとうございましたm(_)m
ツイート | ![]() |