[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/02/25(Sun) 01:44
投稿者名:LOAD
Eメール:
URL :
タイトル:
画面ちらつき
VB6.0にて
最大表示画面を閉じて、別の最大表示画面を起動する際、
起動に時間がかかるためかデスクトップ画面が表示されてしまいます。
ロード時に以下の処理をしています。
・画面にあるコントロール情報を構造体へ格納(コントロール名、INDEX)
  (コントロール数:10)
・システム日付をラベルへ表示
アンロード時は、
ちらつきを防ぎたいのですが、次画面をロードした後、
当画面をアンロード、そしてShowをしています。
ちらつきをなくしたいのですが、何か良い方法はないでしょうか?
教えてください。

投稿時間:2007/02/25(Sun) 06:46
投稿者名:てふ
Eメール:
URL :
タイトル:
Re: 画面ちらつき
そのフォームに効果があるかどうか分かりませんが
こんな感じに変更してはどうでしょう

次に表示するフォーム:Form2
今表示しているフォーム:Form1

Private Sub Form_Unload(Cancel As Integer)

  Load Form2  
  Form2.Show
  Form2.Refresh
  Unload Me

End Sub

投稿時間:2007/02/25(Sun) 23:26
投稿者名:LOAD
Eメール:
URL :
タイトル:
Re^2: 画面ちらつき
てふさん、ありがとうございます。
Form2をモーダル表示にしたい場合、
Unload Meが処理されないように思います。

> 次に表示するフォーム:Form2
> 今表示しているフォーム:Form1
>
> Private Sub Form_Unload(Cancel As Integer)
>
>   Load Form2  
>   Form2.Show
>   Form2.Refresh
>   Unload Me
>
> End Sub

投稿時間:2007/02/26(Mon) 03:39
投稿者名:てふ
Eメール:
URL :
タイトル:
Re^3: 画面ちらつき
> Form2をモーダル表示にしたい場合、
> Unload Meが処理されないように思います。

考え方はモーダルでも一緒ですよ。

何が言いたかったかというと、後から表示するものを先に描画してから
消すものを消せば、両方のフォームが消えることがなくなるということ
がいいたかっただけで、Form1のUnloadの位置は別にForm1のアンロード
イベントプロシージャにある必要はなく、上記の動作が達成できるところ
であればどこでもいいわけです。

例えばモーダルならForm2のLoadイベントのところにForm1をアンロードするようにするとか。