• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2005 スクロールバー)

VB2005 スクロールバーの連動問題と解決方法

このQ&Aのポイント
  • VB2005のフォームには、Panelとその中にPictureBoxが配置されています。PictureBoxはPanelより大きな画像を表示しています。ボタンをクリックすると、スクロールバーが移動するようにするため、Panel1.HorizontalScroll.Valueに100を加算しています。しかし、実際にはクリックするたびにPictureBoxの画像とスクロールバーが連動せず、画像とスクロールバーの移動が別々に行われます。
  • 一回のクリックでPictureBoxの画像とスクロールバーを連動させるためには、Panel1.HorizontalScroll.Valueの値をPictureBoxの移動量に合わせる必要があります。具体的には、PictureBoxのLeftプロパティの値を計算し、Panel1.HorizontalScroll.Valueに代入することで連動させることができます。
  • 以下のコードをボタンのクリックイベントに追加してみてください。 Panel1.HorizontalScroll.Value = PictureBox1.Left / (PictureBox1.Width - Panel1.Width) * (Panel1.HorizontalScroll.Maximum - Panel1.HorizontalScroll.LargeChange)

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

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

再現しました。非常にバグっぽい匂いがします。 同じ、または異なるスクロールバーに対して値を「もう一度代入する」とうまくいくようです。(この地点で描写が開始される模様) しばらくはこれで対処するしかないかもしれません。 http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=331898&SiteID=1 #そうそう、Devdivによると、「VB2005においてスクロールバーが最大値を取らず、90%くらいまでのところにしかならない」っていうバグが報告されていた。 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=119386

situmonnsya
質問者

お礼

そうでしたか。 バグですか。 とりあえず2度代入で切り抜けますが、バグ修正のアップがあった時困りそうですね。 う~~ん、やっぱりDelphiに戻ろうかなぁ。 DrawlineのXorモードもないし・・・ ありがとう ございました。

関連するQ&A