• ベストアンサー

VB2005 スクロールバーポジション

PanelにPictureBoxを入れてます。 PictureBoxがPanelより大きな時スルロールバーがでますが、その位置(Position)を取得したり設定するにはどうするのでしょうか? またスクロールさせた時、PictureBoxの描画範囲(Panel内の表示されている部分)の左座標、上座標、右座標、下座標の値を取得するには、どうしたらできるでしょうか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

パネルのスクロールバーは HorizontalScroll/VerticalScrollプロパティで参照可能ですよ このプロパティのValueを参照すれば現在位置が分かりますし、値を代入すればそこへスクロールします ただし、Max/Minを超える範囲の値を設定すると例外が発生するでしょう ピクチャーボックスの座標はBoundsを参照すれば 左上、幅、高さなどのデータを Rectangle型で返します このとき返される座標は ピクチャーボックスを貼り付けた親コントロールの座標系です 先のRectangle要素から Left/Right/Top/Bottomなどから左右上下を取得可能です

situmonnsya
質問者

お礼

理解できました。 ありがとうございます。

関連するQ&A

  • パネルのスクロールバーについて

    はじめまして。質問させていただきます。 Web開発をしています。環境は WinXP,VS2005,VB.netです。 パネルのスクロールバーをボタン押下のタイミングで 右や左にスクロールさたいのですが、方法がわからず、困っています。 どなたかご教授いただけたらと思います。

  • スクロールバーの境界値は?

    C# AutoScrollPositionで表示させたすスクロールバーの境界値を取得する方法は? AutoScrollで自動でフォームにスクロールバーが表示されるようにしました。 上下方向のスクロールの上限(バーが一番上)下限(バーが一番下)値を取得するにはどうしたらいいでしょうか? バーが一番上になる時の値は、0ですよね? バーが一番下になる時の値は、どのようにして取得すればいいでしょうか? 指導よろしくお願いいたします

  • VB.netでのライン描画方法がわかりません

    VB6.0にて作成していたソースプログラムを.netアップグレードウィザードによりアップグレードして.netソースを作成しました。VB6.0ではPictureBox.Lineを利用してラインの描画をできていたようなのですが、.netにはLineメソッドが用意されていないらしくライン描画をどう行なえば良いかがわかりません。またVB6.0ではPictureBoxだったコントロールがアップグレードウィザードにて変換された後はPanelコントロールになってしまっています。 .netにもPictureBoxはあるのになぜPanelコントロールに置き換わってしまうのでしょうか? いま現在やりたいのは、あるファイルより取得したデータを用いて、VB.netのコントロール(Panel? PictureBox?)にライン描画をさせてやりたいのです。 あまり難しいことは出来ませんので簡単に描画する方法をわかる方がいましたら教えて頂けませんか? よろしくお願いします。

  • Internet Explorer のスクロールバーの位置

    Internet Explorer のスクロールバーの位置って右にありますよね。 それを左にすることってできるんでしょうか。 そもそもマウスでクリックするのも画面左の方が多い気がするのでそっちにバーもあったほうがいいと思うんですが。 よろしくお願いします。

  • スクロールバーの移動範囲

    LAVIE HZ550/B Windows8.1 ブラウザ等の右スクロールバーの移動範囲が1画面ではなく2画面分カクッカクッと移動してしまいます。 もともと1画面分いどうしてたのですが、何をどうして設定が変わったのかわかりません。 タッチパネル操作の時です。 設定方法がわかる方、教えてください。 ※OKWAVEより補足:「NEC 121ware : Windows」についての質問です

  • C# PictureBox + panelでのスクロール

    C#でグラフを表示をさせるため、PictureBoxをPanelに貼り付け、AutoScroll=trueとしてPictureBoxに描画し、スクロール表示させることにしました。通常の表示を行う際には問題はないのですが、グラフを2倍や3倍に拡大表示を行おうとすると、PictureBox.Widthの設定可能な最大値が32768であるため、グラフの右端を表示することができません。表示させたいグラフの幅は30000dotなので、3倍表示する際には90000dot必要となります。 なにかいい解決方法がありましたらご教示をお願いします。

  • VC++ スクロールバーが何ピクセル移動したか知るには?

    VC++初心者なんですが、子ウィンドウにビットマップ画像を表示して、マウスポインタの指している位置のRGBの値を表示するプログラムを作っています。 このとき、画像がある子ウィンドウにスクロールバーがあるとき、スクロールしたあとでもマウスポインタの指すx、y座標が子ウィンドウの左上になってしまいます。そこで、何ピクセル分x、y座標方向にスクロールしたかがわかって、その分マウスポインタの位置に足せばよいと考えたのですが、何ピクセル分スクロールしたかをどう調べるかわかりません。OnHScrollとOnVScrollを用いるのかな?と思ったのですが、ヘルプを読んでもイマイチわかりません。何か変数に、どれだけx方向にスクロールしたか?y方向にスクロールしたか、を格納できるような処理があれば教えてください。

  • VB.NETのグラフィック描画で困っています

    VB.NETでのグラフィックの記述方法ですが 何かをクリックすると描画させるのではなく 単にあるsubプロシージャ内でグラフィックを描画させる記述する方法として pictureBox1.Image=New Bitmap(PictureBox1.width,pictureBox1.Height) Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) を教えていただきました。そこで private sub xy_keisan() '座標を計算させるプロシージャ disp_x() 'x座標に目盛りを表示させるプロシージャ disp_Y() 'xの目盛り数によってY座標の位置を変えて表示させるプロシージャ end sub private sub disp_x() pictureBox1.Image=New Bitmap(PictureBox1.width,pictureBox1.Height) Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) g.DrawLine(****** end sub private sub disp_y() pictureBox1.Image=New Bitmap(PictureBox1.width,pictureBox1.Height) Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) g.DrawLine(****** end sub のような記述(引数とか細かい所は端折っています)ですとdisp_yは描画されていますが,disp_xは消えてしまいます。 pictureBox1.Image=New Bitmap(PictureBox1.width,pictureBox1.Height) が消えてしまう原因だとおもって宣言場所を変えてみましたが同じです 逆にこれが無いと描画させることが出来なくなります。 これの意味も今ひとつ判りません よろしくお願い致します

  • 動的に切り替わる指定座標へ、スムーススクロール

    window.scrollTo("0",Y);で、 ウインドウを指定位置に移動させているのですが、 これをスムーススクロール対応するには、 どうすればよいでしょうか? Yは、指定座標(モニタ上の絶対位置)で、 任意のタイミングで、動的に取得してます。 イメージとしては、 関数みたいなのに、Y座標を渡して、 その都度、スムーススクロールさせるような使い方を想定してます。 jQueryとか、プラグインを使ってもいいですが、 なるべくシンプルに行きたいと思ってます。 また、結果的に、ページ内リンクも、スムーススクロールすることになったとしても別に構いませんが、 やりたいのは、リンクをスムーススクロールすることではなくて、 「動的に、都度切り替わる、Y座標へ、スムーススクロールしたい」ってことです。 難しいようであれば、 厳密なスムーススクロールじゃなくても、 何となくそれっぽく見えれば構いません。

  • スクロールバー

    gooブログアドバンスでカスタムブルーのテンプレ使ってます。 左のサイドバーに縦のスクロールバーを設置したいのです サイドバー全部ではなくENTRY ARCHIVE(過去の年月)だけに設置したいのですが方法が分かりません menuBgに下記のソースを設置したらサイドメニュー全体になります overflow : auto ; /*スクロールバー*/ height : 185px; /*バーの高さ範囲設定*/ 色々やって見ましたが分かりませんのでご存知の方、ご教授できませんか?