フォーム切り替え時の画面のちらつきをなくすには?

解決


Kawagoe  2004-07-27 22:31:32  No: 115110

こんにちは、Kawagoeと申します。

Form1をオープン
    ↓
Form1のボタンをクリック
    ↓
Form2をオープン
    ↓
Form2のボタンをクリック
    ↓
Form2をクローズ
    ↓
Form3をオープン

上記のような処理を行っているのですが、Form2をクローズし、
Form3をオープンする際に、Form1がちらっと見えてしまいます。

あまり見栄えがよくないので、ディスプレイの再描画を一時的に
止めたいと考えているのですが、どのようなコードを記述すれば、
一時的に再描画を止めることが出来るのでしょうか。

ご教授の方、よろしくお願いします。


マグ  2004-07-28 04:23:58  No: 115111

Form1をクローズしていますか?

>上記のような処理を行っているのですが、Form2をクローズし、
>Form3をオープンする際に、Form1がちらっと見えてしまいます。

っと書かれていますが・・・
私的にはForm3をオープンして、Form2をクローズするほうがいいと思います。


z  2004-07-28 16:53:34  No: 115112

VB6ですが。

Form1のボタンをクリック
    ↓
Form1.Visible = False
    ↓
Form2をオープン
    ↓
以下略

とかはどうでしょうか?
適当なタイミングで.Visible = Trueとしてください。


Kawagoe  2004-07-29 00:29:50  No: 115113

マグさん
zさん

ご教授ありがとうございます。

マグさん
Form1はメインメニューになりますので、システムの終了時のみにクローズしよ
うと考えています。

>私的にはForm3をオープンして、Form2をクローズするほうがいいと思います。
私も、最初はこの様にしようと考えていたのですが、Form3にも「Form2を開く」
というボタンがありまして、この手順を踏むと、このボタンの押下時に、2重立
ち上げになってしまいました。
そこで、先に閉じることにしたのですが。。。。システム的には、あまりよくな
いのでしょうか?
もし、よろしければ、アドバイスいただけると助かります。

zさん
お教えいただいた方法を試したところ、無事にメインメニューのちらつきを無く
すことが出来ました。
ありがとうございました。

お二人とも、ご助言いただき、ありがとうございましたm(_)m


nanashi  2004-07-29 01:38:08  No: 115114

> 私も、最初はこの様にしようと考えていたのですが、
> Form3にも「Form2を開く」というボタンがありまして、この手順を踏むと、
> このボタンの押下時に、2重立ち上げになってしまいました。

ボタン押下時にForm2が開いているかどうかを調べればいいと思います。
Formsコレクションを見てください。


Kawagoe  2004-07-29 03:11:47  No: 115115

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加