私は、一連の数値の形式でユーザー入力を受け入れる必要がある(非常に)小さなWPFアプリを構築しています。
ユーザーは1から30の数字(すべて6桁の数字)のいずれかを入力し、[送信]タイプのボタンをクリックします。それがアプリ全体です。
これを可能な限り「低摩擦」にして、ユーザーが実行する必要のあるキーストロークとボタンクリックの総数を最小限に抑えたいと考えています。同時に、できるだけ直感的に維持します。
この種の入力を受け入れる最良の方法は何ですか?
私が考えられる唯一のことはテキストボックスであり、ユーザーはカンマ区切り形式で数値を入力するだけですが、誰かがより良い解決策を持っているかどうか知りたいです。
リストボックスに項目を追加するテキストボックスをお勧めします。これで、ユーザーはリストボックスに対して追加、編集、および削除を行えるようになります。
私の経験では、区切られた数字のセットは、あるアプリケーションから別のアプリケーションにコピー/貼り付けするのは簡単かもしれませんが、特に30項目までの場合、手動で入力するのは簡単ではありません。逆に、ユーザーが長い区切り文字列を入力することに慣れている場合は、テキストボックスに区切り記号付きの項目を受け入れて、データを自動的に分割し、各項目をリストボックスに追加します。これにより、経験豊富なユーザーは複数のアイテムを追加でき、リストを個別のエンティティとして扱うことで修正も簡単になります。
キーストロークを最小限に抑えるために、数字を入力するテキストボックスを用意します。6桁を入力するたびに、数字をリストにコピーしてテキストボックスをクリアすると、単一のカンマ区切りのコントロールでスキャンしてエラーを見つけることはできません。
しかし、間違いなく多くの数を入力することは実際には不可能であることを覚えておいてください。
入力済みの番号を簡単に編集できることを確認してください
番号が正しいことを検証する方法がある場合は、できるだけ早く番号に有効/無効のフラグを立ててください。
可能であれば、UIを、コピー元の数値に似せてください。
過去の数値を固定幅フォントでリストに表示します(これにより、過去の15の数値のように3番目の位置に2が2つある場合は、その1を除いて2が表示されます)
テスト、テスト、テスト-あなたの場合は簡単です。すべての数値を入力する時間と間違いの数を測定するだけです-いくつかのデザインを構築し、何が最もうまくいくかを確認し、ユーザーが苦労していることに基づいた修正でそれを改善します。
@Nescioの提案に基づいて構築し、非常に効率的にしてください。
テキストボックスとリストボックスがあることを検討してください:
[12____]
111111
222222
333333
*12____*
123456
が入力され、ユーザーが7
と入力した場合、エントリがリストに追加され、テキストボックスに7_____
が表示されます。[ new ]
を示す最後の行)。可能であればカットアンドペーストをサポートします。ユーザーはワークフローを予期しない方法で調整することがよくあります。邪魔にならないようにしてください。
これには2つの方法があります。
それぞれに6桁のスペースがある30個の入力フィールドを作成します。ユーザーが6桁すべてを入力したら、次へジャンプするか、タブを使用して次へジャンプします。
1つの入力フィールドを作成し、「タブキーを使用して新しいデータセットを追加する」などのテキストを追加します。そして、ユーザーがタブフィールドを押すたびに別の入力フィールドを追加します。
ユーザーはシステムに入力している番号をどこで取得しますか?コピー/貼り付けできますか
それが可能な場合は、AdobeやMicrosoftなどの一部のアプリでシリアル番号を入力するためのコピー/貼り付け機能の仕組みを調べてください。ユーザーは数字の長い文字列をコピーし、一度に多数のフィールドに貼り付けることができます。
それ以外の場合、ThomPeteの答えはかなりうまくいきます。