Pregunta

Tengo un proyecto WinForm que enumera todos los archivos en una carpeta especificada. Permite al usuario seleccionar un nuevo destino para cada archivo, y cuando el usuario ha elegido los destinos de todos los archivos que le gustaría ser movido, mueve los archivos, uno por uno.

Mi siguiente paso es que necesito para mostrar un formulario de confirmación cuando los archivos se están moviendo, y añadir el nombre y el destino de cada archivo para confirmar la forma como se está moviendo.

Mi pregunta es: ¿Cómo puedo añadir más texto a los controles del formulario confirman después de que ya se han cargado (usando confirm.showdialog() de mi otra forma, sin ninguna interacción del usuario? Me imagino que tengo que hacerlo de la forma original, ya que tiene que mostrar cada uno cuando se empieza a mover ese archivo, pero estoy abierto a cualquier sugerencia:)

TIA

¿Fue útil?

Solución

Los dos respuestas anteriores son buenas.

Si he entendido bien, su principal forma permitirá a uno seleccionar varios archivos, a continuación, seleccione su destino y poner en marcha el proceso de movimiento. Si eso es lo que necesita, yo simplemente hacer lo siguiente:

  1. Crear un nuevo formulario que informar el proceso para el usuario, sin requerir ninguna interacción, pero sólo para informar al usuario qué archivo se va a mover;
  2. Crea una instancia de un objeto BackgroundWorker, y llamar al método de archivo cambiando de la BackgroundWorker.DoWork () método (en su forma principal);
  3. bandera de su BackgroundWorker reportar el progreso, a continuación, llamar al manejador BackgroundWorker.ReportProgress () evento desde dentro de su método move-archivo;
  4. Utilice la lista creada previamente de nombres de archivo para obtener su nombre e informar de ello a su formulario de diálogo de archivos de movimiento mientras se está cambiando el archivo. Un DataBinding simple a través de una etiqueta debe hacer el truco mientras usted se moverá el CurrencyManager para el siguiente elemento dentro de la lista, o usted podría utilizar más simple la lista paso a paso para obtener el nombre del archivo a un índice determinado;
  5. Cuando el usuario inicia el proceso de movimiento, obtener los nombres de archivo y los cuenta y, a continuación, establezca su valor máximo ProgressBar al número de archivos que tienes.
  6. El BackgroundWorker.ReportProgress () toma un valor entero como su argumento, entonces, con su controlador de eventos ProgressChanged (), usted será capaz de mostrar el nombre del archivo que está siendo copiado en su ventana al obtener el nombre del archivo en el ubicación del índice, el método de índice determinado por su ReportProgress ().

Esto le permitirá utilizar el rendimiento de un hilo suplementario, sin "congelar" el hilo principal del cual se ha creado el formulario, entonces usted será capaz de realizar simultáneamente el archivo de movimiento, y mostrar el nombre de archivo para el progreso -forma, mientras ilustrando a su usuario visualmente lo que el progreso se trata a través de su control ProgressBar, y mostrar el nombre del archivo según sea necesario.

¿Esto ayuda?

Otros consejos

¿No sería más simple para hacer otra forma en lugar de utilizar los cuadros de diálogo predefinidos?

esa manera se puede simplemente tener un cuadro de texto que se puede rellenar y refrescar

Usted podría hacer poner todo el código para mostrar el movimiento de los archivos dentro de la ventana de diálogo de confirmación.

Pero para dar una solución más completa que me podría decir cómo se está reuniendo el archivo de información en movimiento.

Una buena solución sería pasar justo a la lista de los archivos para ser movido y luego realizar la función de movimiento en el diálogo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top