Ho provato a inserire la picturebox in un panel e ad attivare l'autoscroll. L'effetto è esattamente quello che vorrei, purtroppo ho scoperto che non è possibile nascondere le barre dello scrolling (cosa veramente inspiegabile) e quindi sto da capo a dodici. In vb6 tra l'altro ho trovato un codice che fa proprio quello che voglio (l'ho anche provato e funziona) ma la mia maledetta niubbagine fa si che non riesca a portarlo in vb.net, nel quale molti metodi non esistono più. Il codice è questo:
''Option Explicit
'Private mPic As Picture
'Private mPicWidth As Single
'Private mPicHeight As Single
'Private mCurrentX As Single
'Private mCurrentY As Single
'Private mLeft As Single
'Private mTop As Single
'Private Sub Form_Load()
' mPic = LoadPicture("E:\Down\Tiger.bmp"
'TO DO: Add path to YOUR Picture file here
' mPicWidth = Me.ScaleX(mPic.Width, vbHimetric, Picture1.ScaleMode)
' mPicHeight = Me.ScaleY(mPic.Height, vbHimetric, Picture1.ScaleMode)
' Picture1.AutoRedraw = True
' ShowPictureAtPosition(mLeft, mTop)
'End Sub
'Private Sub Picture1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' If Button = 0 Then
' mCurrentX = X
' mCurrentY = Y
' ElseIf Button = vbLeftButton Then
' ShowPictureAtPosition(X + mLeft - mCurrentX, Y + mTop - mCurrentY)
' End If
'End Sub
'Private Sub ShowPictureAtPosition(ByVal pX As Single, ByVal pY As Single)
' With Picture1
' .Cls()
' .PaintPicture(mPic, pX, pY, mPicWidth, mPicHeight)
' End With
'End Sub
'Private Sub Picture1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' mLeft = X + mLeft - mCurrentX : mTop = Y + mTop - mCurrentY
'End Sub