+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

[VB2010] Muovere un PictureBox in base alla posizione del cursore

  1. #1
    DavideTr. non è in linea Novello
    Buona sera, il mio problema è il seguente

    Ho creato uno script che al click con il pulsante destro del Mouse sopra ad una PictureBox, la muove in base allo spostamento del cursore.

    Ecco lo Script:

    'Movimento Icone
        Public Cestino = 0
        Public Giochi = 0
        Public MyApp = 0
        Public Market = 0
        Public Sveglia = 0
    
    'Disattivazione del movimento
        Private Sub Form2_Click(sender As Object, e As System.EventArgs) Handles Me.Click
            If Cestino = 1 Then
                Timer9.Stop()
                Cestino = 0
            ElseIf Giochi = 1 Then
                Timer9.Stop()
                Giochi = 0
            ElseIf MyApp = 1 Then
                Timer9.Stop()
                MyApp = 0
            ElseIf Market = 1 Then
                Timer9.Stop()
                Market = 0
            ElseIf Sveglia = 1 Then
                Timer9.Stop()
                Sveglia = 0
            End If
        End Sub
    
    'PictureBox su cui viene fatto click con il pulsante destro
        Private Sub PictureBox3_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox3.MouseDown
            If e.Button = Windows.Forms.MouseButtons.Right Then
                If Cestino = 0 Then
                    Timer9.Start()
                    Cestino = 1
                ElseIf Cestino = 1 Then
                    Timer9.Stop()
                    Cestino = 0
                End If
            End If
        End Sub
    
    'Il timer che provoca lo spostamento del PictureBox
    Private Sub Timer9_Tick(sender As System.Object, e As System.EventArgs) Handles Timer9.Tick
            If Cestino = 1 Then
                PictureBox3.Location = New Point(Cursor.Position.X, Cursor.Position.Y)
            ElseIf Giochi = 1 Then
                PictureBox4.Location = New Point(Cursor.Position.X, Cursor.Position.Y)
            ElseIf MyApp = 1 Then
                PictureBox5.Location = New Point(Cursor.Position.X, Cursor.Position.Y)
            ElseIf Market = 1 Then
                PictureBox6.Location = New Point(Cursor.Position.X, Cursor.Position.Y)
            ElseIf Sveglia = 1 Then
                PictureBox7.Location = New Point(Cursor.Position.X, Cursor.Position.Y)
            End If
        End Sub
    
    Il suo dovere lo fa, il problema è che la PictureBox non è esattamente sotto al cursore ma più spostata rispetto al cursore... Vorrei fare in modo che la PictureBox sia perfettamente sotto al cursore, come posso fare?
    Ultima modifica di elisab; 08-05-2012 21:03  Motivo: mancato utilizzo dei tag [code][/code]

  2. #2
    L'avatar di elisab
    elisab non è in linea Scribacchino
    Devi considerare la distanza fra il punto in cui si trova il puntatore quando inizi il trascinamento e l'angolo superiore sinistro della picture.

    Lo spostamento non dovresti gestirlo con un timer, lo fai sfruttando l'evento MouseMove della PictureBox
    Consentire all'utente di spostare un controllo trascinandolo con il mouse

    Ciao
    ℹ️ Leggi di più su elisab ...

  3. #3
    DavideTr. non è in linea Novello
    Son riuscito, grazie infinite per l' aiuto

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 4
    Ultimo Post: 28-01-2014, 15:15
  2. Risolto: [VB2010] TextBox: Posizionare il cursore in una determinata posizione
    Da imbranato nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 14-12-2012, 09:56
  3. Risolto: [VB2010] Grafico a barre ricavato da PictureBox, problema con posizione
    Da imbranato nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 13-12-2012, 09:57
  4. [ VB2010]Inserire del testo sulla posizione del cursore
    Da IAL32 nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 12-09-2012, 21:29
  5. Risolto: Muovere picturebox
    Da ken1986 nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 07-09-2010, 08:54