Oppure

Loading
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
22/09/11 4:55
remeto
Funziona tutto perfettamente, ti ringrazio molto:k:
aaa
22/09/11 4:58
remeto
Ho solo modificato i valori di P perchè muovendo il mouse a dx l'image si muove a sx e viceversa....cmq tutto ok
aaa