• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zephirus

Drag and Drop para TreeView

3 mensagens neste tópico

Olá,

Tenho este código abaixo para fazer o drag and drop de items entre duas listviews (da lvOrigem para a lvDestino). O que eu pretendia agora era fazer o drag and drop de uma listview para uma treeview mas não estou a conseguir adicionar o item no node específico onde está o rato (isto porque neste exemplo, apenas adiciono à lista e não a um sítio específico). Alguém me pode dar uma ajuda?

Sub lvDestino_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvDestino.DragDrop
   Dim txt As String
   Dim lvi As New ListViewItem
   txt = e.Data.GetData(DataFormats.Text).ToString
   lvi.Text = txt
   lvDestino.Items.Add(lvi)

   For Each lvItem As ListViewItem In lvOrigem.SelectedItems
      lvItem.Remove()
   Next
End Sub

Sub lvDestino_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvDestino.DragEnter
   e.Effect = DragDropEffects.Copy
   lvDestino.BorderStyle = BorderStyle.FixedSingle
End Sub

Sub lvDestino_DragLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvDestino.DragLeave
   lvDestino.BorderStyle = BorderStyle.Fixed3D
End Sub

Sub lvOrigem_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvOrigem.DragDrop
   lvOrigem.Text = e.Data.GetData(DataFormats.Text)
End Sub

Sub lvOrigem_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lvOrigem.MouseDown
   Dim txtCol1 As String
   If lvOrigem.SelectedIndices.Count > 0 Then
      Dim selectedCount As Integer = lvOrigem.SelectedIndices(0)             
      txtCol1 = lvOrigem.Items.Item(selectedCount).Text
      lvOrigem.DoDragDrop(txtCol1, DragDropEffects.Copy)
   End If
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Explora o método TreeView.GetNodeAt

Forneces o X e Y do rato, em relação ao controlo (que obténs nos argumentos até do evento DragDrop) e o método tenta apanhar o Node que se encontra nessa coordenada.

Daí para a frente é história da carochinha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora