Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 controlWindows 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:
Cree una aplicación de 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 el 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 método siguiente debajo de la sección de código que genera el Diseñador de Windows Form 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 siguiente método 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
ListBoxcontrolador.
References
Para obtener más información, consulte los siguientes sitios web: