Estoy creando una aplicación WPF (muy) pequeña que necesita aceptar la entrada del usuario en forma de una serie de números.
El usuario ingresará entre 1 y 30 números (todos los números de 6 dígitos) y luego hará clic en el botón de tipo 'Enviar'. Esa es toda la aplicación, nada más.
Quiero hacer esto lo más bajo posible, manteniendo el número total de pulsaciones de teclas y clics que el usuario debe hacer al mínimo. Y al mismo tiempo, manteniéndolo lo más intuitivo posible.
¿Cuál es la mejor manera de aceptar este tipo de entrada?
Lo único en lo que puedo pensar es en un cuadro de texto y el usuario simplemente escribe sus números en forma separada por comas, pero me encantaría saber si alguien tiene una mejor solución.
Sugeriría un cuadro de texto que agrega elementos a un cuadro de lista. El usuario debería poder agregar, editar y eliminar del cuadro de lista.
En mi experiencia, aunque un conjunto delimitado de números puede ser fácil de copiar/pegar de una aplicación a otra, no es fácil de escribir manualmente, especialmente para hasta 30 elementos. Por el contrario, si sus usuarios están acostumbrados a ingresar cadenas delimitadas largas, permita que el cuadro de texto acepte elementos delimitados, luego divida automáticamente los datos y agregue cada elemento al cuadro de lista. Esto permitirá a los usuarios experimentados agregar múltiples elementos, al tiempo que simplificará las correcciones al tratar la lista como entidades individuales.
Para mantener las pulsaciones de teclado al mínimo, tenga un cuadro de texto donde ingrese los números, cada vez que escriba 6 dígitos copie el número en una lista y borre el cuadro de texto, es imposible escanear un solo control delimitado por comas y encontrar errores.
Pero, recuerda que es realmente imposible escribir tantos números sin errores, así que:
Asegúrese de que sea fácil editar los números que ya ingresó
Si hay una manera de validar que el número es correcto, marque el número como válido/inválido lo antes posible.
Intenta hacer que la IU se parezca a lo que sea que estén copiando los números si es posible.
Muestre números pasados en una lista en fuente de ancho fijo (eso hace que sea más fácil ver cosas como los 15 números pasados, todos tienen un 2 en la tercera posición, excepto ese, debo haberlo escrito mal)
Prueba, prueba, prueba: es fácil en su caso, solo mida el tiempo para ingresar todos los números y la cantidad de errores: cree varios diseños y vea qué funciona mejor, mejore eso con soluciones basadas en lo que los usuarios están luchando.
Intenta desarrollar la sugerencia de @ Nescio y hazla muy eficiente.
Considere tener un cuadro de texto y un cuadro de lista:
[12____]
111111
222222
333333
*12____*
123456
se ingresa y el usuario escribe 7
, la entrada debe agregarse a la lista y deben obtener 7_____
en el cuadro de texto.[ new ]
).Admite cortar y pegar si puedes. Los usuarios a menudo ajustan su flujo de trabajo de formas imprevistas, intenta no obstaculizarlos.
Podrías hacer esto de dos maneras.
Cree 30 campos de entrada con espacio para 6 dígitos en cada uno. Cuando el usuario ha ingresado los 6 dígitos, salta al siguiente o usa la pestaña para saltar al siguiente.
Cree 1 campo de entrada y agregue un texto que diga "Usar la tecla de tabulación para agregar un nuevo conjunto de datos" o algo así. Y luego agregue otro campo de entrada cada vez que el usuario empuje el campo de la pestaña.
¿Dónde obtiene el usuario los números que está ingresando en su sistema? ¿Pueden copiar/pegar?
Si eso es posible, investigue cómo funciona la función copiar/pegar para ingresar números de serie en algunas aplicaciones como Adobe y Microsoft. El usuario puede copiar una larga cadena de números y pegarlos en varios campos de una sola vez.
De lo contrario, la respuesta de ThomPete funciona bastante bien.