• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008 Formドラッグ時の描画を早くしたいです..)

VB2008でFormドラッグ時の描画を早くしたい

このQ&Aのポイント
  • VB2008でFormのドラッグ時の描画を早くする方法について教えてください。
  • 現在、複数のFormが動かされるアプリを作成していますが、コントロールの数が多いために描画がカクカクしてしまいます。
  • Formの動きを早くする方法は、コントロール数を減らすか、PCのスペックを上げることしかないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

フォームを移動させるだけなら、フォーム自体は再描画されません。(正確には内部のバッファによって自動的に再描画されるのでコントロールやフォームが描画しているわけではないはずです。) 画面がカクつく原因は、フォームが移動したことで隠れていたウィンドウに対し再描画の命令が飛んでいるからだと思います。つまり、コントロールを減らしてもおそらく状況は変わらないでしょう。 フォームを移動するときは、Left, Topに分けずLocationで移動すると改善できるかもしれません。 Me.Left += e.X - mousePoint.X Me.Top += e.Y - mousePoint.Y この場合だと、Left移動で1回、Top移動で1回の計2回再描画命令が飛ぶことになります。ここを Me.Location = New Point(Me.Left + e.X - mousePoint.X, Me.Top + e.Y - mousePoint.Y) とすれば、再描画命令は1回だけになるはずです。 以下、Form1,2,4に対しても同じようにすれば、隠れていたフォームに送られる再描画命令の数が半分になるので少しはスムーズになるかもしれません。 あとは、フォーム移動完了時に他のフォームを一気に動かすくらいですかね・・・。 ちなみにWin7(Areo有効)では普通にスーっと動きました・・・。離れたウィンドウが一緒にくっついてくるのでちょっと面白かったです。

MKT_
質問者

お礼

 うぃず様  どうもありがとうございます!!m(_ _)m >フォームを移動させるだけなら、フォーム自体は再描画されません 貴重なご助言どうもありがとうございます. >隠れていたウィンドウに対し再描画の命令が飛んで~ おっしゃられます通り,Formの2つが半分重なり合っていたり, Visible=Falseになっているものが常に一つあったりいたしましたため すべてVisible=Trueにしてかつ,重なり合わない状態で並行移動させてみましたが,今回につきましてはまだカクカクでしたorz  しかし教えていただいた「再描画の命令が飛ぶ」という事から もしかするとFormに張り付けてある大きな画像の「再描画」が原因かな? などと推測いたしまして,BackGroundImageから画像を消したところ, 幾分か速くなったようでございます.どうもありがとうございます.  この場合,Form上の画像を残したままでカクカクを無くす方法は何か 無いものでしょうか・・・orz >Win7 なんともう購入なされましたか.自分も動作環境テスト用に欲しいんですが... (どうせ今作製しているアプリを人にあげても,今後Vista使い続ける 人ほとんどいないでしょうし..) VBの動作もVistaより快適なんでしょうか??羨ましいです.^^;

関連するQ&A

専門家に質問してみよう