- ベストアンサー
PictureBox内の画像をマウスドラッグでスライド
解像度の大きな画像ファイルを、小さなPictureBoxに読み込んだあと、虫眼鏡的に画像をマウスドラッグでスライドさせて、大きな画像の全領域を参照するようなもの(地図ソフトのようなイメージ)を作りたいのですが、PictureBoxにそのような機能はあるのでしょうか?
- みんなの回答 (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 // コードは紹介されているものにちょっとだけ手を加えて簡略化したものです。
その他の回答 (1)
- temtecomai2
- ベストアンサー率61% (656/1071)
VB 6.0 なのか VB.NET なのかわかりませんが、VB.NET なら過去に同じ質問がありました。 http://oshiete1.watch.impress.co.jp/qa5248510.html
お礼
遅くなりまして申し訳御座いません。 何とか解決の糸口が見えました。 この度は有難う御座いました。
補足
こんにちは。ご回答ありがとう御座います。 ご指摘にあります通り、以前の回答内容につきましては 私も参照させていただいておりましたが、こちらの例では AutoSize指定されたPictureBoxをフォームの大きさ目一杯を使って Locationプロパティを変更してずらして表示させる方法だと思います。 つまり虫眼鏡になる部分がフォームそのものとなります。 今回の場合は、あるフォーム上のPictureBoxの大きさや表示場所(座標)を 変えることなく、表示内容だけドラッグで移動したいと考えております。 つまり虫眼鏡になる部分がフォームではなくPictureBoxとなります。 やはりつらいでしょうか・・・
お礼
遅くなりまして申し訳御座いません。 何とか解決の糸口が見えました。 この度は有難う御座いました。
補足
御回答ありがとう御座います。まさにこの事です。 お恥ずかしながらパネルの機能を知りませんでした・・・ この度はありがとう御座いました。