- PR -

MDIフォームでの子画面のちらつき

1
投稿者投稿内容
たかはし
会議室デビュー日: 2008/03/01
投稿数: 2
投稿日時: 2008-03-13 10:56
はじめまして。たかはしと申します。

VB2005でMDIフォームを使用していますが
画面遷移時にカクカクとちらつきが発生しております。
MDIを使用されている方でちらつきをなくすよい方法などはありますでしょうか?

調査を進めますと、現画面(Form1とします)から次画面(Form2とします)をShowするタイミングで
Form1の最大化が解除されておりました。
(Debug.PrintでWindowsState=0になっていました)

そのため、Form1が一瞬上にあがって閉じるような動作となり
ちらつきが発生しておりました。

対策としてSendMessageで描写を抑制したり
DubbleBufferd、SetStyleプロパティを使用しても改善されませんでした。
また、Form1のCloseのタイミングやForm1のShowするタイミングを
逆にしたり、SendToBack、TopMostプロパティを使用して
Form2を先に裏で表示しておいて表示しきったら
Form1を閉じるなど試みましたが、結果ダメでした。

ご教授のほどよろしくお願いします。

<環境>
 OS:WindowsXP
 CPU:PenM1.5
 MEM:752Mb
 言語:VB2005Pro+SP1

なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-11-12 00:15
自分も前に同じ問題で悩みました。
たかはしさんと同じ方法を試しましたが改善できず。

結局は、MDI 子フォームの FormBorderStyle プロパティに None、
Dock プロパティに Fill を指定するという苦肉の策をとりました。
これで「それっぽい」動作はします。
1

スキルアップ/キャリアアップ(JOB@IT)