Domanda

Nella mia azienda, ho visto diversi approcci per avvisare un utente quando il suo input non è valido (la nostra convalida viene generalmente eseguita quando l'utente fa clic su una forma di un pulsante &; Invia &;);

Ecco gli approcci più comuni che ho visto:

  • Utilizzo del ErrorProvider classe per comunicare quali controlli contengono input non validi. ( questa è la mia preferenza attuale perché la convalida può essere eseguita in un colpo solo e l'utente può facilmente identificare quali controlli contengono l'input non valido. )

  • Convalida dell'input in tutti i controlli e compilazione di un elenco di messaggi da visualizzare all'utente. Una volta completata la routine di convalida, visualizzare tutte & Quot; input non valido & Quot; messaggi per l'utente contemporaneamente (tramite un MessageBox).

  • Convalida in modo sequenziale dell'input in ciascun controllo e notifica all'utente quando viene trovata una parte di dati non validi (tramite un MessageBox). ( Non sono un fan di questo approccio perché se Control_A e Control_B contengono entrambi dati non validi, l'utente dovrà tentare di inviare i dati due volte per visualizzare entrambi i messaggi di convalida. )

Quale pensi sia il modo migliore per notificare in modo efficace / efficiente agli utenti input non validi?

È stato utile?

Soluzione

Utilizzando IDataError , puoi combinare il due primi approcci, poiché entrambi consentono di fornire un errore per i singoli controlli, ma anche un messaggio di errore aggregato per l'intera vista.

In alcuni casi, potresti avere una logica di convalida che dipende dalla combinazione di diversi valori di input, quindi solo la convalida vincolante per ciascun controllo sarebbe troppo proibitiva. D'altra parte, si desidera comunque essere in grado di fornire un messaggio di errore per ciascun controllo nei molti casi in cui ciò ha senso. IDataError ti consente di fare entrambe le cose. L'implementazione dell'interfaccia utente più comune è avere un segnale visivo (come un'icona lampeggiante) accanto a ciascun controllo non valido.

Aprire una finestra di dialogo modale (finestra di messaggio) ogni volta che l'utente fa qualcosa di invalido è un modo molto efficace di infastidire l'utente: perde il contesto e deve passare il tempo facendo clic sul pulsante "OK" per far scomparire la finestra di dialogo .

Altri suggerimenti

Controlliamo tutti i controlli quando l'utente preme OK.

Contrassegniamo ogni valore non valido con un colore speciale ed elenchiamo tutti gli errori in una finestra di messaggio.

Se la tecnologia lo consente e se non influisce in alcun modo sul flusso logico o sull'usabilità, è sempre meglio avvisare l'utente degli errori il prima possibile. (Provider di errori, Ajax, qualsiasi cosa)

È sempre frustrante quando l'utente deve inviare un modulo più volte solo per scoprire se viene preso un nome utente!

Ho fatto uno studio di usabilità su questo: la maggior parte degli utenti lascia la pagina disgustata a meno che non vogliano davvero tutto ciò che si trova all'altra estremità della registrazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top