• ベストアンサー

PictureBox内の画像をマウスドラッグでスライド

解像度の大きな画像ファイルを、小さなPictureBoxに読み込んだあと、虫眼鏡的に画像をマウスドラッグでスライドさせて、大きな画像の全領域を参照するようなもの(地図ソフトのようなイメージ)を作りたいのですが、PictureBoxにそのような機能はあるのでしょうか?

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

  • ベストアンサー
  • tochansa
  • ベストアンサー率76% (23/30)
回答No.2

フォーム上に任意のパネルを配置して、その中にPictureBoxを入れて下さい。 その上で、下記のようなコードを書けばお望みの物になりませんでしょうか? dim bDrag as Boolean, ptDrag as Point Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown If bDrag = False Then bDrag = True ptDrag = e.Location End If End Sub Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp Me.PictureBox1.Location = e.Location - ptDrag bDrag = False End Sub // コードは紹介されているものにちょっとだけ手を加えて簡略化したものです。

lmk1127
質問者

お礼

遅くなりまして申し訳御座いません。 何とか解決の糸口が見えました。 この度は有難う御座いました。

lmk1127
質問者

補足

御回答ありがとう御座います。まさにこの事です。 お恥ずかしながらパネルの機能を知りませんでした・・・ この度はありがとう御座いました。

その他の回答 (1)

回答No.1

VB 6.0 なのか VB.NET なのかわかりませんが、VB.NET なら過去に同じ質問がありました。 http://oshiete1.watch.impress.co.jp/qa5248510.html

lmk1127
質問者

お礼

遅くなりまして申し訳御座いません。 何とか解決の糸口が見えました。 この度は有難う御座いました。

lmk1127
質問者

補足

こんにちは。ご回答ありがとう御座います。 ご指摘にあります通り、以前の回答内容につきましては 私も参照させていただいておりましたが、こちらの例では AutoSize指定されたPictureBoxをフォームの大きさ目一杯を使って Locationプロパティを変更してずらして表示させる方法だと思います。 つまり虫眼鏡になる部分がフォームそのものとなります。 今回の場合は、あるフォーム上のPictureBoxの大きさや表示場所(座標)を 変えることなく、表示内容だけドラッグで移動したいと考えております。 つまり虫眼鏡になる部分がフォームではなくPictureBoxとなります。 やはりつらいでしょうか・・・