none
Una consulta, al arrastrar archivos desde el explorador a un formulario, al recuperarlos... (explico) RRS feed

  • Pregunta

  • ...Al recuperarlos los ordena a partir del archivo en que arrastro. Suponiendo que tengo cinco archivos en el explorador:

    Archivo1

    Archivo2

    Archivo3

    Archivo4

    Archivo5

    Los selecciono y empiezo el arrastre haciendo click sin soltar sobre el Archivo3. El array devuelto queda:

    Archivo3

    Archivo4

    Archivo5

    Archivo1

    Archivo2

    Como se puede observar la lista devuelta empieza en el archivo en el que empezó el arrastre. Si empiezo el arrastre en el Archivo1 allí sí retorna la lista como se ve en la selección.

    La consulta es: ¿No hay forma de que retorne la lista tal como se ve en la selección sin importar en cuál archivo empiece el arrastre?

    Nota: Los archivos los recupero normalmente, con esta línea de código del evento DragDrop:

    Dim Archivos() = e.Data.GetData(DataFormats.FileDrop)

    jueves, 11 de marzo de 2021 6:52

Respuestas

  • No, no hay manera de cambiarlo, porque el cambio de orden no se produce en el punto de destino en tu programa. El cambio lo hace el propio explorador cuando empiezas a arrastrar, antes de que se sepa que el destino del arrastre es tu programa. Así que desde tu programa no puedes remediarlo.

    Puedes comprobar que esto lo hace el explorador copiando unos cuantos archivos grandes y pegándolos en otra carpeta. Verás que empieza a copiar por el archivo en el que hiciste el click, aunque esté en el medio de todos los que se han seleccionado.

    • Marcado como respuesta James2016-2 jueves, 11 de marzo de 2021 13:05
    jueves, 11 de marzo de 2021 7:31

Todas las respuestas

  • No, no hay manera de cambiarlo, porque el cambio de orden no se produce en el punto de destino en tu programa. El cambio lo hace el propio explorador cuando empiezas a arrastrar, antes de que se sepa que el destino del arrastre es tu programa. Así que desde tu programa no puedes remediarlo.

    Puedes comprobar que esto lo hace el explorador copiando unos cuantos archivos grandes y pegándolos en otra carpeta. Verás que empieza a copiar por el archivo en el que hiciste el click, aunque esté en el medio de todos los que se han seleccionado.

    • Marcado como respuesta James2016-2 jueves, 11 de marzo de 2021 13:05
    jueves, 11 de marzo de 2021 7:31
  • No, no hay manera de cambiarlo, porque el cambio de orden no se produce en el punto de destino en tu programa. El cambio lo hace el propio explorador cuando empiezas a arrastrar, antes de que se sepa que el destino del arrastre es tu programa. Así que desde tu programa no puedes remediarlo.

    Puedes comprobar que esto lo hace el explorador copiando unos cuantos archivos grandes y pegándolos en otra carpeta. Verás que empieza a copiar por el archivo en el que hiciste el click, aunque esté en el medio de todos los que se han seleccionado.

    Ah, bueno, ni modo. Gracias.
    jueves, 11 de marzo de 2021 13:05
  • Hola,

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada.

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    jueves, 11 de marzo de 2021 14:44
    Moderador