Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB.NET] Drag&Drop da un DatGridView con Multiselect

    Salve a tutti...
    Devo implementare il Drag&Drop da un DataGridView con il Multiselect impostato a True verso un TreeView. Il codice che ho scritto funziona, ha solo un problema, se ci sono più righe selezionate nel DataGridView mi applica il Drag&Drop solo alla riga da cui parte il trascinamento perchè nel momento in cui clicco sul DataGridView per iniziare il Drag la selezione cambia, si deselezionano tutte le righe e rimane selezionata solo quella su cui è avvenuto il Click..

    Come posso risolvere????

    Codice:
    codice:
        Private Sub GridDoc_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles GridDoc.MouseMove
            If e.Button = Windows.Forms.MouseButtons.Left And GridDoc.SelectedRows.Count > 0 Then
                GridDoc.DoDragDrop(GridDoc.SelectedRows, DragDropEffects.Copy)
            End If
        End Sub
    
        Private Sub Tree_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Tree.DragOver
            e.Effect = DragDropEffects.Copy
            Dim pt As Point = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))
            nodoDrop = Tree.GetNodeAt(pt)
            Tree.SelectedNode = nodoDrop
            If nodoDrop.Level = 0 Then
                e.Effect = DragDropEffects.None
            ElseIf nodoDrop.ImageIndex <> 0 Then
                e.Effect = DragDropEffects.None
            Else
                e.Effect = DragDropEffects.Copy
            End If
            s = e.Data.GetData(System.Windows.Forms.DataFormats.StringFormat)
            MsgBox(s)
        End Sub
    
        Private Sub Tree_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Tree.DragDrop
            s = e.Data.GetData(System.Windows.Forms.DataFormats.StringFormat)
            MsgBox(s)
            Dim risp As MsgBoxResult
            risp = MsgBox("Archiviare i documenti selezionati in """ & nodoDrop.Text & """?", MsgBoxStyle.YesNo + MsgBoxStyle.Question)
            If risp = MsgBoxResult.Yes Then
                Archivia()
            End If
        End Sub
    
        Sub Archivia()
            caricaCampi = False
            Me.Cursor = Cursors.WaitCursor
            Dim doc As New clsDOC()
            doc.nodo = Tree.SelectedNode.Name
            Dim where As String = ""
            numVis -= GridDoc.SelectedRows.Count
            For Each drv In GridDoc.SelectedRows
                where += "IDDOC=" & drv.Cells(0).Value & " OR "
                filtro += " IDDOC<>" & drv.Cells(0).Value & " AND "
            Next
            where = where.Remove(where.Length - 4, 4)
            doc.setArchivio(where)
            filtro = filtro.Remove(filtro.Length - 5, 5)
            dsDOC.Tables(0).DefaultView.RowFilter = filtro
            GridDoc.DataSource = dsDOC.Tables(0).DefaultView
            TestoColonneDOC()
            caricaCampi = True
            BoxDoc.Text = "Documenti  [Risultato della Ricerca: " & numVis & " Documenti]"
            Me.Cursor = Cursors.Default
        End Sub
    Grazie mille in anticipo.....
    zoodany..

    www.zoodany.it

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.