Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con arrastrar y soltar..ayudaaaa

Estas en el tema de Problemas con arrastrar y soltar..ayudaaaa en el foro de .NET en Foros del Web. Buen dia. muchas gracias por su atencion. Pues lo que pasa es que estoy migrando una aplicacion(mensajero interno) de vb6 a vb.net y tengo problemas ...
  #1 (permalink)  
Antiguo 01/06/2007, 12:09
5v5
 
Fecha de Ingreso: abril-2005
Ubicación: Huehuetoca, Mexico
Mensajes: 138
Antigüedad: 19 años
Puntos: 0
Problemas con arrastrar y soltar..ayudaaaa

Buen dia. muchas gracias por su atencion.

Pues lo que pasa es que estoy migrando una aplicacion(mensajero interno) de vb6 a vb.net y tengo problemas en esta parte del proceso.-

tengo un listview que al arrastrar archivos del explorador de windows se le almacena su icono, nombre, tamaño etc.. y al mismo tiempo creo una copia temporal del archivo arrastrado...(se puede llamar adjuncion de archivos como en el outlook)

Hastaki todo esta bien en Vb.Net

El problema esta en la operacion contraria..es decir, que si mi listview ya tiene un archivo adjunto y si quiero arrastrar el archivo(item del list view) hacia el explorador de windows, me cree una copia del mismo.. asi como lo hace el mismo explorador de windows...

este problema lo tengo en .net pork en vb6 funciona bien y uso el siguiente codigo para que funcione en vb6.

en el evento mouse ejecuto el evento OLEDrag del listview
Código:
Me.ListView1.OLEDrag

Y en el evento OLEStartDrag

Código:
Private Sub ListView1_OLEStartDrag(Data As MSComctlLib.DataObject, AllowedEffects As Long)
On Error Resume Next
 
Data.Files.Clear

For i = 1 To ListView1.ListItems.Count

                    
                    If ListView1.ListItems(i).Selected Then
                    
  
                         Data.Files.Add ListView1.ListItems.Item(i).SubItems(3)
   
                    End If
                       
     Next i
Data.SetData , vbCFFiles
AllowedEffects = vbDropEffectCopy

End Sub
Esto es lo que necesito pasar a .net, pero no encuentro la forma he probado con


Código:
 Dim d As New DataObject(algun item seleccionado que contiene la ruta del archivo)

 ListView1.DoDragDrop(d, DragDropEffects.Copy)
Esperando su ayuda muchas gracias.......
  #2 (permalink)  
Antiguo 04/06/2007, 13:53
5v5
 
Fecha de Ingreso: abril-2005
Ubicación: Huehuetoca, Mexico
Mensajes: 138
Antigüedad: 19 años
Puntos: 0
Re: Problemas con arrastrar y soltar..ayudaaaa

Hola nuevamente.....Muchas gracias por su atencion...pues creo que estaba mas facil de lo que me imaginaba...jeeje...logre dar con la solucion...

Esta es la solucion:
Código:
Private Sub ListView1_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles ListView1.ItemDrag
        Dim Contador As Short  ' contador de archivos seleccionados
'encendemos el foco ya que el arrastre proviene del mismo listview
Código:
     Drag = True
'creamos el objeto de tipo listview y
'convertimos el objeto llamador a un tipo listview y se lo asignamos por referencia al objeto creado de tipo listview
Código:
        Dim List As ListView 
        List = CType(sender, ListView)
' creamos un array con un tamaño de la cantidad de objetos seleccionados
Código:
        Dim Archivos(List.SelectedItems.Count - 1) As String
'iniciamos el conteo
'y almacenamos en el array la ruta del archivo a almacenar

Código:
        For Contador = 0 To List.SelectedItems.Count - 1
          Archivos(Contador) = Me.ListView1.SelectedItems(Contador).SubItems(3).Text 
        Next
'ya que almacenamos los archivos en el array creamos un objeto de transferencia de datos con un formato
'Parametros
'data: Datos que se van a almacenar. en este caso el array
'format/DataFormats.FileDrop: Formato de los datos especificados para colocar archivos de Windows, que no utilizan directamente los formularios Windows Forms

'Inicia una operación de arrastrar y colocar.
'Parámetros:
'data: Datos que se van a arrastrar. en este caso el ObjAlmacen
'allowedEffects:los datos se almacenan en el destiono a colocar de forma de copia..es decir donde se suelten se copian

Código:
        Dim ObjAlmacen As New DataObject(DataFormats.FileDrop, Archivos)

        List.DoDragDrop(ObjAlmacen, DragDropEffects.Copy)

    End Sub
Saludos...y perdon por las faltas de OrRografya jeje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.