it-swarm-pt.tech

Melhor maneira de aceitar a entrada do usuário de vários números?

Estou criando um aplicativo WPF (muito) pequeno que precisa aceitar a entrada do usuário na forma de uma série de números.

O usuário digitará de 1 a 30 números (todos os números de 6 dígitos) e, em seguida, clique no botão do tipo 'Enviar'. Esse é o aplicativo inteiro, nada mais.

Quero tornar isso o mais baixo possível de atrito possível, mantendo o número total de toques de tecla e cliques de botão que o usuário deve fazer no mínimo. E, ao mesmo tempo, mantendo-o o mais intuitivo possível.

Qual é a melhor maneira de aceitar esse tipo de entrada?

A única coisa em que consigo pensar é em uma caixa de texto e o usuário simplesmente digita seus números em formato separado por vírgula, mas eu adoraria saber se alguém tem uma solução melhor.

10
Dhaust

Eu sugeriria uma caixa de texto que adiciona itens a uma caixa de listagem. O usuário deve poder adicionar, editar e remover da caixa de listagem.

Na minha experiência, embora um conjunto delimitado de números possa ser fácil de copiar/colar de um aplicativo para outro, não é fácil digitar manualmente, especialmente para até 30 itens. Pelo contrário, se seus usuários estiverem acostumados a inserir seqüências delimitadas longas, permita que a caixa de texto aceite itens delimitados, divida automaticamente os dados e adicione cada item à caixa de listagem. Isso permitirá que usuários experientes adicionem vários itens, além de simplificar as correções tratando a lista como entidades individuais.

12
Nescio

Para manter as teclas pressionadas ao mínimo, tenha uma caixa de texto onde você digita os números, toda vez que você digita 6 dígitos copia o número em uma lista e limpa a caixa de texto, é impossível verificar um único controle delimitado por vírgula.

Mas lembre-se de que é realmente impossível digitar tantos números sem erros, então:

  • Verifique se é fácil editar os números que você já inseriu

  • Se houver uma maneira de validar, o número está correto e sinalize o número como válido/inválido o mais rápido possível.

  • Tente fazer com que a interface do usuário se pareça com o que eles estão copiando, se possível.

  • Exibir números passados ​​em uma lista com fonte de largura fixa (que facilita a visualização de coisas como os 15 números passados, todos têm um 2 na 3ª posição, exceto aquele, eu devo ter digitado errado)

  • Teste, teste, teste - é fácil no seu caso, basta medir o tempo para inserir todos os números e o número de erros - crie vários designs e veja o que funciona melhor, aprimore-o com correções baseadas nas dificuldades dos usuários.

7
Nir

Tente se basear na sugestão de @ Nescio e torná-la muito eficiente.

Considere ter uma caixa de texto e uma caixa de listagem:

[12____]

 111111
 222222
 333333
*12____*
  • Quando o cursor ultrapassar o último dígito na caixa de texto e o usuário digitar outro dígito: adicione a entrada na parte inferior da caixa de listagem, limpe a caixa de texto e adicione esse dígito como o primeiro.
    • Por exemplo, se 123456 é inserido e os tipos de usuário 7, a entrada deve ser adicionada à lista e eles devem receber 7_____ na caixa de texto.
    • Se digitar Enter, Tab, vírgula etc., adicione a entrada e limpe a caixa de texto.
    • O usuário apenas precisa digitar os dígitos, minimizando as teclas digitadas. No entanto, eles ainda podem usar pressionamentos de tecla de delimitação extra se estiverem acostumados a fazê-lo.
  • Reflita as alterações no item atual da caixa de listagem conforme o usuário digita. Tenha um espaço reservado especial na lista para itens vazios/novos (por exemplo, a última linha mostrando [ new ]).
  • Se o usuário selecionar um item na caixa de listagem, preencha a caixa de texto. Deixe que eles comecem a digitar imediatamente para editá-lo (mude o foco conforme necessário).
    • Considere apoiar as teclas de seta para cima/para baixo para selecionar itens da caixa de listagem. As chaves devem funcionar, não importa onde o foco esteja dentro do aplicativo.
  • As UIs não padrão abrem muitos detalhes sutis que são irritantes se não forem manipulados corretamente. Teste e experimente até que a interface do usuário pareça natural. Além disso, peça a outra pessoa (colega de trabalho) para experimentá-lo.

Suporte para cortar e colar, se puder. Os usuários geralmente ajustam seu fluxo de trabalho de formas imprevistas, tentam não impedi-los.

2
dbkk

Você poderia fazer isso de duas maneiras.

  1. Crie 30 campos de entrada com espaço para 6 dígitos em cada um. Quando o usuário digitar todos os 6 dígitos, pule para o próximo ou use a guia para pular para o próximo.

  2. Crie um campo de entrada e adicione um texto que diz "Use a tecla tab para adicionar novo conjunto de dados" ou algo assim. E adicione outro campo de entrada toda vez que o usuário pressionar o campo da guia.

1
ThomPete

Onde o usuário obtém os números que está inserindo no seu sistema? Eles podem copiar/colar

Se isso for possível, verifique como a função copiar/colar funciona para inserir números de série em alguns aplicativos como Adobe e Microsoft. O usuário pode copiar uma longa sequência de números e colar em vários campos de uma só vez.

Caso contrário, a resposta da ThomPete funciona muito bem.

0
Tucker