Ir para conteúdo
Fórum Script Brasil
  • 0

Função Selecionar com Drag and Drop - PictureBox para Panel


veronica.sa

Pergunta

Olá

Estou tentando fazer um formulário de seleção no meu sistema.

A ideia é a seguinte: o usuário terá imagens na tela (que serão exibidas em PictureBox). Essas figuras representam as opções de seleção que ele tem. Para selecionar uma ou mais opções o usuário tem que clicar na imagem e arrastá-la para dentro de um Painel (Panel). Cada PictureBox receberá um nome específico que a identificará.

A tela de exemplo onde estou tentando aplicar isso está na imagem em anexo.

Consegui fazer essa funcionalidade de clicar e arrastar para o Panel usando o código em anexo, isso está funcionando.

Mas agora preciso saber como faço para identificar qual imagem foi arrastada para dentro do panel?? Pois para cada uma delas tenho que executar uma tarefa diferente no programa. 

Desde de já agradeço a atenção.

O código é este:

 Public Class Form2
    Public Property SizeMode As PictureBoxSizeMode
    Private MouseIsDown As Boolean = False

    Dim pos As Integer = 10

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load, Pic1.MouseEnter, Pic1.DragLeave
         
        PanelDrop.AllowDrop = True
    End Sub


    Private Sub Pic1_MouseDown(sender As Object, e As MouseEventArgs) Handles Pic1.MouseDown
        If Not Pic1.Image Is Nothing Then
            ' Set a flag to show that the mouse is down.
            MouseIsDown = True
        End If

    End Sub

    Private Sub Pic2_MouseDown(sender As Object, e As MouseEventArgs) Handles Pic2.MouseDown
        If Not Pic2.Image Is Nothing Then
            ' Set a flag to show that the mouse is down.
            MouseIsDown = True
        End If
    End Sub

    Private Sub Pic3_MouseDown(sender As Object, e As MouseEventArgs) Handles Pic3.MouseDown
        If Not Pic3.Image Is Nothing Then
            ' Set a flag to show that the mouse is down.
            MouseIsDown = True
        End If

    End Sub

   

    Private Sub Pic1_MouseMove(sender As Object, e As MouseEventArgs) Handles Pic1.MouseMove
        If MouseIsDown Then
            ' Initiate dragging and allow either copy
            Pic1.DoDragDrop(Pic1.Image, DragDropEffects.Copy Or
            DragDropEffects.Move)
        End If
        MouseIsDown = False
    End Sub

    Private Sub Pic2_MouseMove(sender As Object, e As MouseEventArgs) Handles Pic2.MouseMove
        If MouseIsDown Then
            ' Initiate dragging and allow either copy or move.
            Pic2.DoDragDrop(Pic2.Image, DragDropEffects.Copy Or
            DragDropEffects.Move)
        End If
        MouseIsDown = False

    End Sub

    Private Sub Pic3_MouseMove(sender As Object, e As MouseEventArgs) Handles Pic3.MouseMove
        If MouseIsDown Then
            ' Initiate dragging and allow either copy or move.
            Pic3.DoDragDrop(Pic3.Image, DragDropEffects.Copy Or
            DragDropEffects.Move)

        End If
        MouseIsDown = False
    End Sub

   
    Private Sub PanelDrop_DragEnter(sender As Object, e As DragEventArgs) Handles PanelDrop.DragEnter
        If e.Data.GetDataPresent(DataFormats.Bitmap) Then
            'Copia a imagem do picture box quando clico e arrasto
            e.Effect = DragDropEffects.Copy
        End If

    End Sub

     

    Private Sub PanelDrop_DragDrop(sender As Object, e As DragEventArgs) Handles PanelDrop.DragDrop
  
        'Size of picturebox inside the panel
        Dim u As New PictureBox
        u.Width = 100
        u.Height = 100
        u.BackColor = Color.BlueViolet
        u.Left = pos
        u.Top = 10
        pos += 120

        'Set the SizeMode to center the image.
        u.SizeMode = PictureBoxSizeMode.StretchImage

        
        u.Image = e.Data.GetData(DataFormats.Bitmap)
        
       'Um condição IF aqui? COmo saber o nome da picturebox selecionada??


        'Insert picture in the Panel
        PanelDrop.Controls.Add(u)
    End Sub


End Class 

Obrigadaa!!! Toda ajuda é bem vinda. 

Capture.PNG

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...