Proporcionar funcionalidad de arrastrar y colocar archivos en una aplicación de Visual C#
En este artículo se muestra cómo proporcionar 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#. Se usa un ListBox control como destino del procedimiento de arrastrar y colocar archivos.
Requisitos
En esta lista se describen el hardware, el software, la infraestructura de red y los Service Pack recomendados que necesita: Visual C#.
En este artículo se supone que está familiarizado con los temas siguientes:
Windows Forms ListBox controlWindows Forms event handling
Pasos para compilar el ejemplo
El control ListBox proporciona dos eventos de arrastrar y colocar que debe 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 aquel que desea permitir que se quite en el control. Este evento se controla en los casos en los que un archivo o archivos se arrastran al control. Esto permite mostrar el icono adecuado cuando el objeto se arrastra sobre el control, en función del objeto que se está arrastrando. El DragDrop evento se produce cuando el objeto que se está arrastrando se ha liberado en el control. Este evento se controla para recuperar el objeto . El objeto Data se usa para recuperar los datos.
El método del GetData objeto Data devuelve una matriz de cadenas que contienen los nombres de ruta de acceso completos de los archivos que se arrastraron al ListBox 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, mover los archivos o copiar los archivos en una nueva ubicación. En este ejemplo, solo tiene que agregar la ruta de acceso completa a los archivos que se arrastran al ListBox control.
Para proporcionar la funcionalidad de arrastrar y colocar archivos en una aplicación de Visual C#, siga estos pasos:
Cree una nueva aplicación Windows Forms en Visual C# .NET o Visual C# 2005. Form1 se crea de forma predeterminada.
Use el cuadro de herramientas para agregar un
ListBoxcontrol a Form1.En la ventana Propiedades , cambie la
AllowDroppropiedad delListBoxcontrol a True para permitir que los objetos se arrastren al control.En Explorador de soluciones, haga clic con el botón derecho en Form1 y, a continuación, haga clic en Ver código.
Para controlar el
DragEnterevento, agregue el siguiente método debajo de la sección de código que el diseñador de formularios Windows genera en laForm1clase :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; }Para controlar el
DragDropevento, agregue el método siguiente a laForm1clase 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]); }Para asociar los dos controladores de eventos a los eventos de control, agregue el código siguiente en el
Form1constructor después de la llamada aInitializeComponent:this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);Compile y ejecute el proyecto.
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
ListBoxcontrol .
Referencias
Para obtener más información, vea los siguientes sitios web: