Agregue soporte para cargar archivos con la usabilidad intuitiva de arrastrar y soltar.
Muchas aplicaciones modernas funcionan con archivos que un usuario puede cargar en su sistema. Los editores de imágenes, los IDE de código y los procesadores de texto son todos ejemplos. Si está creando una aplicación de formulario de Windows, puede agregar fácilmente esta funcionalidad como parte de su interfaz de usuario.
Las aplicaciones de Windows Forms le permiten arrastrar y soltar elementos de la interfaz de usuario, como paneles o cuadros de lista. Puede usar estos elementos de la interfaz de usuario para crear su funcionalidad de arrastrar y soltar. Cuando el usuario arrastra un archivo a un panel, puede mostrar comentarios basados en ese archivo.
Cómo crear la interfaz de usuario para el contenedor de arrastrar y soltar
Puede usar un elemento de panel para crear la interfaz de usuario para la funcionalidad de arrastrar y soltar. Luego puede usar un elemento de la interfaz de usuario de ListBox para mostrar los nombres de cualquier archivo que un usuario arrastre al panel.
- Crear una nueva aplicación de Windows Forms.
- En la caja de herramientas, busque un elemento de la interfaz de usuario del panel y arrástrelo al lienzo.
- Resalte el nuevo panel. En la ventana de propiedades, cambie los valores de las siguientes propiedades:
Propiedad
Nuevo valor
Nombre
arrastrarDropPanel
BackColor
Humo blanco
Estilo de borde
Fijo simple
Tamaño
600, 400
Visible
Verdadero
- En la caja de herramientas, busque un elemento de la interfaz de usuario de ListBox y arrástrelo al lienzo. Colóquelo de modo que quede dentro del panel y asegúrese de que haya algo de espacio entre el ListBox y el panel.
- Resalte el nuevo ListBox y cambie los valores de las siguientes propiedades:
Propiedad
Nuevo valor
Nombre
lista de archivos subidos
BackColor
Humo blanco
Estilo de borde
Ninguno
Tamaño
500, 300
Visible
FALSO
Cómo agregar el evento de arrastrar y soltar
Puedes usar eventos en una aplicación de Windows Forms para ejecutar ciertas funciones solo cuando ocurren ciertos eventos.
Para agregar funcionalidad al panel de arrastrar y soltar, deberá agregar dos eventos. El evento "DragEnter" ocurrirá cuando arrastre archivos sobre el panel. El evento "DragDrop" ocurrirá cuando suelte el mouse para colocar los archivos en el panel.
- Resalte el elemento de la interfaz de usuario del panel exterior.
- En la ventana de propiedades, haga clic en el Focos icono para abrir la lista de eventos.
- Haga doble clic en el ArrastrarIntro evento para generar una nueva función. Esta función se ejecutará cuando arrastre archivos sobre el panel.
- Dentro de la nueva función, cambia el icono del ratón para indicar la acción de arrastrar/soltar:
privadovacíoarrastrarDropPanel_DragEnter(remitente del objeto, DragEventArgs e)
{
// Cambia el icono del mouse
mi. Efecto = DragDropEffects. Todo;
} - Clickea en el Formulario 1.cs [Diseño] en la parte superior de la ventana de Visual Studio, para volver a la vista de lienzo. Resalte el elemento de la interfaz de usuario del panel.
- En la ventana de propiedades, haga clic en el Focos icono para volver a la lista de eventos. Esta vez, haga doble clic en el Arrastrar y soltar evento. Esto generará otra función que se ejecutará cuando suelte el mouse para colocar los archivos en el panel.
- Dentro de la nueva función DragDrop, obtenga la lista de archivos que el usuario está arrastrando al panel. Puede encontrar esto en los detalles del evento que se pasan automáticamente a la función.
privadovacíoarrastrarDropPanel_DragDrop(remitente del objeto, DragEventArgs e)
{
cadena[] archivos = (cadena[])e. Datos. Obtener datos (formatos de datos. soltar archivos, FALSO);
}
Cómo mostrar la lista de archivos arrastrados
Ahora que ha agregado la funcionalidad para que el usuario arrastre y suelte archivos, puede mostrar los nombres de los archivos mediante el elemento de interfaz de usuario ListBox.
- Dentro de la función dragDropPanel_DragDrop(), después de obtener la lista de archivos, use un bucle for para recorrer cada archivo.
para cada (variable archivo en archivos)
{
} - Dentro del bucle for, solo obtenga el nombre del archivo. Separe el nombre del archivo de la ruta del archivo y guárdelo en una variable separada. Si está utilizando una Mac, es posible que deba modificar el código para tener en cuenta las barras diagonales en lugar de las barras diagonales inversas.
cadena fileName = archivo. Subcadena (archivo. ÚltimoÍndiceDe("\\") + 1, archivo. Longitud - (archivo. ÚltimoÍndiceDe("\\") + 1));
- Agregue el nombre del archivo al elemento de interfaz de usuario ListBox.
intentar
{
lista de archivos subidos.Elementos.Agregar(Nombre del archivo);
}
atrapar (Excepciónexcepción)
{
Consola. Línea de escritura(excepción);
} - El ListBox no está visible por defecto. Después del ciclo for, cambie la visibilidad del ListBox a verdadero:
lista de archivos cargados. visibles = verdadero;
- Modifique el constructor en la parte superior del archivo. Selecciona el Permitan el descenso y Desplazamiento automático propiedades del panel de arrastrar y soltar en verdadero.
público Formulario 1()
{
InicializarComponente();
arrastrarDropPanel. Permitir soltar = verdadero;
arrastrarDropPanel. Desplazamiento automático = verdadero;
}
Cómo borrar la lista
Después de que el usuario haya arrastrado elementos al panel, es posible que desee borrar la lista y comenzar de nuevo. Puede agregar un botón para borrar la lista cuando el usuario haga clic en él.
- Con la caja de herramientas, arrastre un botón al lienzo.
- Resalta el botón. Use la ventana de propiedades para cambiar las siguientes propiedades a los nuevos valores:
Propiedad
Nuevo valor
Nombre
Borrar botón
Texto
Claro
- Haga doble clic en el botón para generar una nueva función. Esta función se ejecutará cuando haga clic en el botón en tiempo de ejecución:
privadovacíoclearButton_Click(remitente del objeto, EventArgs e)
{}
- Dentro de la función, borre el contenido del elemento de la interfaz de usuario de ListBox y ocúltelo:
privadovacíoclearButton_Click(remitente del objeto, EventArgs e)
{
lista de archivos subidos.Elementos.Claro();
lista de archivos cargados. visibles = FALSO;
}
Cómo probar el panel de arrastrar y soltar
Para probar la función de arrastrar y soltar, ejecute la aplicación y arrastre algunos archivos al panel. Si es necesario, también puede depure su aplicación Winforms en Visual Studio en tiempo de ejecución. Esto le ayudará a comprender lo que sucede en cada línea de código.
- Presione el botón verde de reproducción en la parte superior de la ventana de Visual Studio para ejecutar la aplicación.
- Arrastre algunos archivos desde su explorador de archivos y suéltelos en el panel. Asegúrese de no estar ejecutando Visual Studio en modo administrador. Deberá configurar permisos de seguridad adicionales para arrastrar y soltar para trabajar en modo administrador.
- El panel se actualizará para mostrarle los nombres de los archivos que arrastró al panel.
- Arrastre suficientes archivos y verá que el panel de arrastrar y soltar muestra una barra de desplazamiento en su lado derecho automáticamente.
- Clickea en el Claro botón para vaciar la lista.
Uso de la funcionalidad de arrastrar y soltar en aplicaciones de Windows Forms
Ahora es de esperar que comprenda cómo agregar la funcionalidad de arrastrar y soltar a su aplicación de Windows Forms. Hay muchas otras características que puede explorar para hacer cosas interesantes con Windows Forms.