20/09/11 16:46
Ale96
Ok, questo è un esempio non la pappa pronta, leggilo capisci l'algoritmo e dopo lo copi o lo riscrivi. Non l'ho testato, dimmi se funziona!
Imports System.Drawing Public Class Form1 Dim WholeImage As Bitmap Dim PbxImage As Bitmap Dim G As Graphics Dim P, WholeImagePosition As Point 'WholeImagePosition rappresenta il punto in alto a sinistra dell'immagine rispetto alla picturebox. '---------- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'qui bisogna assegnare un valore all'immagine intera, non la si può lasciare vuota. PbxImage = New Bitmap(PictureBox1.Width, PictureBox1.Height) G = Graphics.FromImage(PbxImage) P = New Point(0,0) WholeImagePosition = New Point(0,0) 'posizione di partenza dell'immagine G.DrawImage(WholeImage, WholeImagePosition) G.Flush() PictureBox1.Image = PbxImage PictureBox1.Refresh() End Sub Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown If e.Button = Button.Left Then 'verifica che sia stato premuto il pulsante destro P = e.Location End If End Sub Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove If Not e.Button = Button.Left Then Exit Sub End If G.Clear(Systemcolors.Control) 'viene cancellata l'immagine per evitare effetti trascinamento G.DrawImage(WholeImage, New Point(P.X - exX + WholeImagePosition.X, P.Y - e.Y + WholeImagePosition.Y)) G.Flush() 'P è il punto dove abbiamo fatto click, e è il punto dove si trova ora il mouse, la rispettiva differenza delle coordinate indica di quanto si è mosso il mouse e aggiungendo questi valori alle coordinate dell'immagine quest'ultima si muoverà insieme al mouse. PictureBox1.Image = PbxImage PictureBox1.Refresh() End Sub Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp P = New Point(0,0) 'viene azzerato p, questo psassaggio non è fondamentale, ma serve se altre funzioni usano il valore di p. End Sub End Class
Ultima modifica effettuata da Ale96 20/09/11 16:49
aaa