it-swarm.cn

接受用户输入多个数字的最佳方法?

我正在构建一个(非常)小的WPF应用程序,该应用程序需要接受一系列数字形式的用户输入。

用户将输入1-30个数字(全为6位数字)中的任意一个,然后单击“提交”类型按钮。那就是整个应用程序,仅此而已。

我想尽可能降低摩擦,使用户必须做的击键和按钮点击的总数保持最小。同时,使其尽可能直观。

接受这种输入的最佳方法是什么?

我唯一能想到的是文本框,用户只需以逗号分隔的形式输入数字,但是我很想听听是否有人有更好的解决方案。

10
Dhaust

我建议一个将项目添加到列表框的文本框。然后,用户应该能够在列表框中添加,编辑和删除。

以我的经验,虽然一组定界数字可能很容易从一个应用程序复制/粘贴到另一个应用程序,但是手动键入并不容易,尤其是对于多达30个项目。相反,如果您的用户习惯于输入长定界字符串,则允许文本框接受定界项目,然后自动拆分数据并将每个项目添加到列表框中。这将允许有经验的用户添加多个项目,同时通过将列表视为单独的实体来简化更正。

12
Nescio

为使击键次数减至最少,请在文本框中输入数字,每次键入6位数字时,将数字复制到列表中并清除文本框,则不可能用单个逗号分隔的控件来扫描和查找错误。

但是,请记住,键入这么多数字而不会出现错误实际上是不可能的,因此:

  • 确保容易编辑已输入的号码

  • 如果有一种方法可以验证数字是否正确,请尽快将该数字标记为有效/无效。

  • 如果可能,请尝试使UI类似于他们从中复制数字的方式。

  • 以固定宽度的字体在列表中显示过去的数字(这使得如果更容易看到像15个过去的数字一样在第3位上都带有2的数字,除了那个,我一定输错了它)

  • 测试,测试,测试-在您的情况下很容易,只需测量输入所有数字的时间和错误的数量即可-构建多个设计并查看最有效的设计,并根据用户所苦的问题进行修复以进行改进。

7
Nir

尝试建立在@Nescio的建议上,并使其非常有效。

考虑有一个文本框和一个列表框:

[12____]

 111111
 222222
 333333
*12____*
  • 当光标经过文本框的最后一位数字并且用户键入另一位数字时:将条目添加到列表框的底部,清除文本框,然后将该数字添加为第一位。
    • 例如,如果输入123456且用户类型为7,则应将条目添加到列表中,并且他们在文本框中应获得7_____
    • 如果他们输入Enter,Tab,逗号等,则添加条目并清除文本框。
    • 用户需要输入数字,以最大程度地减少击键次数。但是,如果习惯了,他们仍然可以使用额外的定界击键。
  • 在用户键入时将当前列表框项中的更改反映出来。有一个用于空/新项目的特殊列表占位符(例如,最后一行显示[ new ])。
  • 如果用户在列表框中选择一个项目,请填写文本框。让他们立即开始输入内容进行编辑(根据需要移动焦点)。
    • 考虑支持用于选择列表框项目的向上/向下箭头键。无论焦点在应用程序中的哪个位置,键都应该起作用。
  • 非标准的UI会打开许多​​细微的细节,如果处理不当,它们会很烦人。测试和试验直到用户界面自然。另外,请其他人(同事)尝试一下。

如果可以的话,支持剪切和粘贴。用户经常以不可预见的方式调整他们的工作流程,尽量不要阻碍他们。

2
dbkk

您可以通过两种方式执行此操作。

  1. 创建30个输入字段,每个输入字段可容纳6位数字。用户输入所有6位数字后,跳至下一个或使用选项卡跳至下一个。

  2. 创建1个输入字段,并添加一个文本,内容为“使用Tab键添加新数据集”或类似的内容。然后,每当用户按下选项卡字段时,添加另一个输入字段。

1
ThomPete

用户从哪里获得输入到您系统中的号码?他们可以复制/粘贴吗

如果可能的话,请研究复制/粘贴功能如何在Adobe和Microsoft等某些应用中输入序列号。用户可以复制一长串数字并将其粘贴到多个字段中。

否则,ThomPete的答案将非常有效。

0
Tucker