Slepen zichtbare picture image

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Ik heb de volgende code om picturebox1 te slepen naar p1 (ook een picturebox) middels volgende code
Code:
  Private m_MouseIsDown As Boolean = False

    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
  If Not PictureBox1.Image Is Nothing Then
     m_MouseIsDown = True
        End If
    End Sub
  
  Private Sub PictureBox_MouseMove(ByVal sender As Object,
                             ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        If m_MouseIsDown Then         
            PictureBox1.DoDragDrop(PictureBox1.Image, DragDropEffects.Copy Or
DragDropEffects.Move)
        End If
        m_MouseIsDown = False


    End Sub

    Private Sub P1_DragEnter(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles P1.DragEnter
  If e.Data.GetDataPresent(DataFormats.Bitmap) Then
            ' Check for the CTRL key. 
            If e.KeyState = 9 Then
                e.Effect = DragDropEffects.Copy
            Else
                e.Effect = DragDropEffects.Move
            End If
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub
 
   Private Sub P1_DragDrop(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles P1.DragDrop
  If Not P1.Image Is Nothing Then
            Exit Sub
        End If
    P1.Image = e.Data.GetData(DataFormats.Bitmap)
        If Not e.KeyState = 8 Then
            PictureBox1.Image = Nothing
        End If
        
    End Sub

Dit werkt zonder problemen alleen de afbeelding van picturebox1 wordt niet zichtbaar gesleept naar p1 maar middels een soort enveloppen ehtgeen gebruikelijk is bij de drag en dropfunctie.
Ik heb alles geprobeerd middels een timer enz. om het slepen met een zichtbare afbeelding. Geen enkele functie krijg ik goed.

Vriendelijke groet
 
Dank je voor het meedenken. Ik heb deze mogelijkheid even ingebouwd, en het was geen probleem om picturebox1. naar een andere positie te brengen, maar het probleem hierbij is juist de picturebox niet moet worden verplaatst maar de afbeelding daarin, dus zoals eerder gezegd bij dropanddrag verschijnt tijdens het slepen een soort enveloppe en dit moet dan de afbeelding zijn
 
Dat zou de custom cursor op moeten lossen. De cursor die getoond wordt tijdens een actie is aanpasbaar. Door de cursor voor drag-drop te veranderen in het te slepen plaatje kun je die illusie creëren.

Ik heb het wel eens toegepast maar dat was in C++ in de XP tijd.
 
Dank voor je antwoord. Heb je hiervan een voorbeeld en anders zelf maar verder knutselen.
 
De onderste oplossing uit mijn link (geloof ik). De meeste oplossingen zullen een vorm van "hack" zijn, omdat het helaas standaard niet wordt ondersteund door windows
 
Hoi,

Heb inmiddels een class gevonden die zo in het programma kan , deze is ook voor het slepen van tekst, afbeeldingen enz.
Vervolgens in het formulier de aanpassing
Code:
 Private Sub PictureBox1_MouseMove(ByVal sender As Object,
                             ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If e.Button = System.Windows.Forms.MouseButtons.Left Then
     With popCur
                .popType = popcursor.epopType.Picture
                .popImage = CType(PictureBox1.Image, Bitmap)
                .PopIt()
            End With
            Timer11.Start()
            DoDragDrop(PictureBox1.Image, DragDropEffects.Copy)
        End If

Mocht er belangstelling voor zijn dan hoor ik het wel
Class code:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan