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

フォームの背景に画像を割り当てると動作が遅くなる

環境/言語:[VB2005]
分類:[.NET]

こんばんは。
題名の通りなのですが、フォームの背景に画像を割り当てるとフォームを移動したときなどのフォームの描画がかなり遅くなってしまうのですが、これを回避する方法はあるのでしょうか?
2007/08/30(Thu) 00:35:17 編集(投稿者)

■No20377に返信(てくもさんの記事)
> こんばんは。
> 題名の通りなのですが、フォームの背景に画像を割り当てるとフォームを移動したときなどのフォームの描画がかなり遅くなってしまうのですが、これを回避する方法はあるのでしょうか?

一般的方法はありません。
描いてるのだから当然です。

Vistaにするとだいぶ改善されますが、
Vistaそのものが重いです。

描くのが重いわけですから、
描くことをやめたり、
描くことを早くできればいいわけですね。

イメージのフォーマットを変えたり、
PCを速くしたり、
描くのをやめたり。

Formで変なことをしてなければ、
そんな対策しかないです。
FormのOnPaintBackgroundをオーバライドして下のようにすると
場合によっては,ちょっとだけ速くなるような気がします...
お試しください。

    Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
        e.Graphics.DrawImage(Me.BackgroundImage, Me.ClientRectangle)
    End Sub
■No20380に返信(YASさんの記事)
> FormのOnPaintBackgroundをオーバライドして下のようにすると
> 場合によっては,ちょっとだけ速くなるような気がします...

多少早くなるかもしれません。

・スクロールができなくなる
・透過色が変になる
・ハイコントラストモードでも絵が表示されてしまう
・たまに描画サイズとずれる

など問題が発生しますが。

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