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 control
Windows 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 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
ListBox
control a Form1.En la ventana Propiedades , cambie la
AllowDrop
propiedad delListBox
control 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
DragEnter
evento, agregue el siguiente método debajo de la sección de código que windows Form Designer genera en laForm1
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; }
Para controlar el
DragDrop
evento, agregue el método siguiente a laForm1
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]); }
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 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
ListBox
control .
Referencias
Para obtener más información, vea los siguientes sitios web:
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de