1

私の会社では、入力が無効な場合にユーザーに通知するためのいくつかのアプローチを見てきました (当社の検証は通常、ユーザーが何らかの形式の [送信] ボタンをクリックしたときに行われます)。

私が見た最も一般的なアプローチは次のとおりです。

  • ErrorProviderクラスを使用して、どのコントロールに無効な入力が含まれているかを伝えます。(これは私の現在の好みです。検証は 1 回で実行でき、ユーザーはどのコントロールに無効な入力が含まれているかを簡単に特定できるからです。 )

  • すべてのコントロールで入力を検証し、ユーザーに表示するメッセージのリストをコンパイルします。検証ルーチンが完了したら、すべての「無効な入力」メッセージを (MessageBox を介して) ユーザーに一度に表示します。

  • 各コントロールの入力を順次検証し、無効なデータが見つかったら (MessageBox を介して) ユーザーに通知します。( Control_A と Control_B の両方に無効なデータが含まれている場合、ユーザーは両方の検証メッセージを表示するためにデータを 2 回送信する必要があるため、私はこのアプローチのファンではありません。 )

無効な入力をユーザーに効果的/効率的に通知するための最良の方法は何だと思いますか?

4

3 に答える 3

2

IDataErrorを使用すると、最初の 2 つのアプローチを組み合わせることができます。これは、個々のコントロールにエラーを提供できるだけでなく、ビュー全体に集計エラー メッセージを提供することもできるためです。

場合によっては、いくつかの異なる入力値の組み合わせに依存する検証ロジックを使用することがあります。そのため、各コントロールに検証をバインドするだけでは、法外な問題が発生します。一方で、これが理にかなっている多くの場合に、各コントロールにエラー メッセージを提供できるようにしたい場合もあります。IDataError を使用すると、両方を実行できます。最も一般的な UI 実装は、無効な各コントロールの横に視覚的な合図 (アイコンの点滅など) を表示することです。

ユーザーが無効なことを行うたびにモーダル ダイアログ (メッセージ ボックス) をポップアップ表示することは、ユーザーを悩ませる非常に効果的な方法です。ユーザーはコンテキストを失い、[OK] ボタンをクリックしてダイアログを閉じるのに時間を費やす必要があります。

于 2009-06-27T18:49:15.080 に答える
1

ユーザーが [OK] を押すと、すべてのコントロールがチェックされます。

無効な値はそれぞれ特別な色でマークされ、すべてのエラーがメッセージ ボックスに一覧表示されます。

于 2009-06-27T17:28:41.757 に答える
1

テクノロジが許容し、ロジック フローやユーザビリティを損なわない場合は、できるだけ早くユーザーにエラーを通知することをお勧めします。(エラー プロバイダー、Ajax、何でも)

ユーザー名が使用されているかどうかを確認するためだけにフォームを何度も送信しなければならない場合は、常にイライラします。

私はこれについてユーザビリティ調査を行いました。ほとんどのユーザーは、登録の反対側にあるものを本当に必要としない限り、嫌悪感を持ってページを離れます。

于 2009-06-27T17:28:57.573 に答える