DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォーム上の項目の位置がずれる

環境/言語:[OS : Windows XP / 言語 : Visual Basic .NET / .NET Framework : 3.5]
分類:[.NET]

【解決したい問題】

お世話になってます。

vb2008で作成したフォームについてです。

フォームの初期起動時は良いのですが、起動中にエクセルなどほかの作
業をしていてそのフォームが最前面にいない場合、最前面にしたときに
フォームの項目が上にタイトルバー分くらいずれるときが時々ありま
す。
フォームにあるすべての項目が上にずれます。

再現しようともいろいろ試したのですが再現はできません。ですが時々
フォームを起動させたままで他の作業をして戻ると上にずれていて困っ
ています。
デバックで起動した場合もEXEを作成してEXEから起動した場合も同じ現
象が起きます。

この現象の対処にアドバイス頂けないでしょうか。

【追加事項】

☆☆☆☆☆フォームの情報☆☆☆☆☆
・そのフォームにはステータスバーがあり、DockプロパティはBottomにしていま
す。
 ちなみにステータスバーの位置は変わりません。下のままです。
・MaximaizeBox=False
・StartPosition=CenterScreen
・AutoScalseMode=None

その他のプロパティはデフォルト値です。
# 回答に非ず

■No27400に返信(ふぇあさんの記事)
> 再現しようともいろいろ試したのですが再現はできません。
当方の場合は、上では無く斜め方向にズレるという現象でしたが、
TabControl や DataGridView を使っている一部の画面において、
似たような現象が起きてしまう事がありました。同じく XP 環境です。


> 最前面にいない場合、最前面にしたときに
当方では、画面切り替えのタイミングとは関係なく、
何もしていない状態でも、急にガクッとずれることがあったので、
別の現象なのかも知れません(他にアプリも起動していませんでしたし)。

こちらの状況の場合、Vista 機では何故か発生しなかったのですが、
それが OS の問題なのか、それともハードウェア(ドライバ?)の相性なのか、
あるいは .NET の問題なのかは不明なままです。

他のウィンドウ等を上に被せたり、あるいはアプリを最小化するなどして
再描画を促すと表示が元に戻るのですけれども。

# 何故か、Load イベントに
#  Me.Opacity = 254 / 255
# と記述する事で描画ズレが起きにくくなるようなのですが…何だろう?

DOBON.NET | プログラミング道 | プログラミング掲示板