Proporcionar funcionalidad de arrastrar y colocar archivos en una aplicación de Visual C#

En este artículo se muestra cómo proporcionar la funcionalidad de arrastrar y colocar archivos en una aplicación de Visual C#.

Versión original del producto: Visual C++
Número de KB original: 307966

Resumen

El procedimiento paso a paso que se describe en este artículo muestra cómo proporcionar funcionalidad de arrastrar y colocar archivos en una aplicación de Visual C#. Un ListBox control se utiliza como destino del procedimiento de arrastrar y soltar del archivo.

Requisitos

En esta lista se describen el hardware, el software, la infraestructura de red y los service packs recomendados que necesita: Visual C#.

En este artículo se supone que está familiarizado con los temas siguientes:

  • Windows Forms ListBox control
  • Windows Forms event handling

Pasos para compilar el ejemplo

El control ListBox proporciona dos eventos de arrastrar y colocar que necesita controlar: DragEnter y DragDrop. El DragEnter evento se produce cuando se arrastra un objeto dentro de los límites del control y se usa para determinar si el objeto que se está arrastrando es el que desea permitir que se coloque en el control. Este evento se maneja en los casos en los que se arrastra uno o más archivos al control. Esto permite mostrar el icono adecuado cuando se arrastra el objeto sobre el control, en función del objeto que se arrastra. El evento DragDrop se produce cuando se ha liberado el objeto que se está arrastrando sobre el control. Se maneja este evento para poder recuperar el objeto. El objeto Data se usa para recuperar los datos.

El método del objeto Data devuelve una matriz de cadenas que contiene los nombres completos de las rutas de los archivos que se arrastraron al control. Puede usar esta información de ruta de acceso de archivo para realizar las operaciones necesarias en los archivos. Por ejemplo, puede usar clases en el System.IO espacio de nombres para abrir y leer los archivos, moverlos o copiarlos en una nueva ubicación. En este ejemplo, solo tiene que agregar la ruta completa de los archivos que se arrastran al control ListBox.

Para proporcionar la funcionalidad de arrastrar y colocar archivos en una aplicación de Visual C#, siga estos pasos:

  1. Cree una aplicación de Windows Forms en Visual C# .NET o Visual C# 2005. Form1 se crea de forma predeterminada.

  2. Use el cuadro de herramientas para agregar un ListBox control a Form1.

  3. En la ventana Propiedades , cambie la AllowDrop propiedad del ListBox control a True para permitir que los objetos se arrastren al control.

  4. En el Explorador de soluciones, haga clic con el botón derecho en Form1 y, a continuación, haga clic en Ver código.

  5. Para controlar el DragEnter evento, agregue el método siguiente debajo de la sección de código que genera el Diseñador de Windows Form en la Form1 clase :

    private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
        if(e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;
    }
    
  6. Para controlar el DragDrop evento, agregue el siguiente método a la Form1 clase inmediatamente después del método que agregó en el paso 5:

    private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
        string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false);
        int i;
        for(i = 0; i < s.Length; i++)
            listBox1.Items.Add(s[i]);
    }
    
  7. Para asociar los dos controladores de eventos a los eventos de control, agregue el código siguiente en el Form1 constructor después de la llamada a InitializeComponent:

    this.listBox1.DragDrop += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
    this.listBox1.DragEnter += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
    
  8. Compile y ejecute el proyecto.

  9. Arrastre uno o varios archivos desde el escritorio u otra carpeta al control ListBox. La ruta de acceso completa de los archivos se agrega al ListBox controlador.

References

Para obtener más información, consulte los siguientes sitios web: