none
Arrastar e soltar dentro do painel RRS feed

  • Pergunta

  • Pessoal boa Tarde,

    Fiz uma funçao que cria Botão e joga dentro de um Painel com ajuda do Leonardo..

    Mais queria dar uma modificada

    Queria colocar outro painel do lado com uma imagem de fundo,e toda vez que eu pegasse o botao do primeiro painel e arrastasse para o segundo ele fizesse um insert no banco e desaparecesse do segundo painel

    Acontece que os botoes do primaeiro painel são criados dinamicamente e não sei usar seus Hadles em tempo de execução

    segunda-feira, 26 de abril de 2010 15:12

Respostas

  • Mais nesse caso vc não precisa criar Dragdrop Dinamico não pq vc não vai arrastar o painel e sim o botão,só vai precisar criar MouseDown do botao

    na sub que cria o botão vc coloca na ultima linha 

    AddHandler

    botao.MouseDown, AddressOf botao_MouseDown

    e depois vc cria a sub relacionada  ao evento mouseDown

    ex:

     

    Private Sub botao_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

     

    Me.DoDragDrop((CType(sender, Button)), DragDropEffects.Move)

    PedidoID =

    CInt((CType(sender, Button).Text.Trim))

    txtPesq.Text = PedidoID

     

    End Sub

     

    • Marcado como Resposta Naldo.Net segunda-feira, 26 de abril de 2010 15:53
    segunda-feira, 26 de abril de 2010 15:40

Todas as Respostas

  • Caro Naldo.Net

    use o FlowLayoutPanel em vez de Panel e coloque a a propriedade allowDrop como true

     

    Private Sub FlowLayoutPanel1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles FlowLayoutPanel1.DragDrop

    Dim

    bot As Button = (CType(e.Data.GetData(GetType(Button)), Button))

     

    If MsgBox("Deseja enviar o Pedido n° (" & (CInt(bot.Text.Trim) & ") para a  Banco?"), MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then

    seu codigo de inserção no banco

     

    Me.FlowLayoutPanel1.Controls.Add(bot)

    end sub

     

     

    Private Sub FlowLayoutPanel1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles FlowLayoutPanel1.DragEnter

     

    If e.Data.GetDataPresent(GetType(System.Windows.Forms.Button)) Then

    e.Effect = DragDropEffects.Move

     

    Else

    e.Effect = DragDropEffects.None

     

    End If

     

    End Sub

    segunda-feira, 26 de abril de 2010 15:29
  • Leonardo Obrigado mais uma vez cara,

    Mais meu problema é criar os eventos dinamicamente

    os Handles de Drogdrop e Move

    segunda-feira, 26 de abril de 2010 15:34
  • Mais nesse caso vc não precisa criar Dragdrop Dinamico não pq vc não vai arrastar o painel e sim o botão,só vai precisar criar MouseDown do botao

    na sub que cria o botão vc coloca na ultima linha 

    AddHandler

    botao.MouseDown, AddressOf botao_MouseDown

    e depois vc cria a sub relacionada  ao evento mouseDown

    ex:

     

    Private Sub botao_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

     

    Me.DoDragDrop((CType(sender, Button)), DragDropEffects.Move)

    PedidoID =

    CInt((CType(sender, Button).Text.Trim))

    txtPesq.Text = PedidoID

     

    End Sub

     

    • Marcado como Resposta Naldo.Net segunda-feira, 26 de abril de 2010 15:53
    segunda-feira, 26 de abril de 2010 15:40
  • Cara ficou muito bom,até coloquei uma imagem de fundo de uma pasta para dar a sensação de inserção no banco

    Obrigado mesmo!!!

    • Sugerido como Resposta Leonardo Leite segunda-feira, 26 de abril de 2010 16:08
    segunda-feira, 26 de abril de 2010 15:53