2009-01-29 9 views
5

È abbastanza comune avere un modulo con una casella di controllo che indica "Usa pippo" immediatamente seguito da una casella di testo in cui l'utente può immettere il "valore foo" che desidera utilizzare. Naturalmente, questo campo testo è utile solo se "Usa foo" è selezionataCome gestite i controlli temporanei inutili in Winforms (nascondendo vs disabilitando)?

non so il modo migliore per affrontare questa situazione:

  1. Disattivare la casella di testo (ad esempio textboxfoo.Enabled = false;
  2. Nascondere (es. Textboxfoo.Visible = false;)
  3. Consentire all'utente di immettere un valore foo se lo desidera e ignorare il valore inserito.

Esiste una best practice che posso seguire?

+0

Buona domanda. Mi interessa anche il consenso generale. – JMD

risposta

12

La casella di testo deve essere disabilitata.

Se la casella di testo è nascosta, l'alterazione visibile del modulo renderà il programma meno user-friendly. Un esempio di questo è il vecchio (molto impopolare) elementi del menu che scomparivano che erano in Microsoft Office. Le persone non vogliono che le cose si muovano sui loro schermi. È disorientante.

Se all'utente è consentito immettere un valore inutile, ciò dà la falsa impressione che l'immissione del valore abbia qualche effetto.

+0

+1 (eccetto che ho esaurito i voti, suppongo che dovrò "tornare domani") – Rob

+0

Inoltre, penso che sia possibile modificare le impostazioni di un tooltip da visualizzare anche se il controllo è disabilitato. Pertanto, è possibile che il suggerimento spieghi perché il controllo è disabilitato e/o come riattivarlo. –

0

Io preferisco disattivare il nascondiglio, se non altro perché evita inutili spazi bianchi nella finestra di dialogo.

1

Disattivare la casella di testo

Con la casella di testo nascosto l'utente può saltare l'opzione "Usa Foo" dal momento che non sarà chiaro a loro come saranno o dovrebbero definire "foo". Con la casella di testo visibile ma disattivata, l'utente riconoscerà che può definire "pippo" una volta che dice di volerlo usare.

2

La disattivazione della casella di testo è l'opzione migliore in questo caso. Il fatto che la casella di testo sia abilitata/disabilitata quando la casella di controllo è selezionata/deselezionata fornisce un feedback utile all'utente: l'opzione use foo si aspetta un valore foo, e il valore foo è significativo solo se l'opzione use foo è selezionata.

Nascondere la casella di testo è meno soddisfacente - se la casella non è selezionata, l'utente non si renderà conto che l'attivazione dell'opzione foo consentirà loro di specificare il valore di foo. Immaginali a pensare a se stessi: "È meglio non selezionare l'opzione use foo, perché non ho idea di quale valore foo verrà utilizzato."

La terza opzione è la peggiore, poiché non indica che il valore immesso verrà ignorato.

+0

Inoltre, un valore predefinito visibile nella casella di testo disabilitata può fornire ulteriori informazioni su esattamente cosa si intende per "Foo" (ad esempio, un foo_numero_). Molto di più su http://www.zuschlogin.com/?p=40. –

0

Disabilitare la casella di testo.
Rende chiaro all'utente che esiste un'opzione che non è disponibile. Nascondendolo a volte otterrà una risposta utente di "Dove è finita la mia scatola".

1

È evidente che la disattivazione della casella di testo è favorita perché l'utente ha ancora un indizio visivo su cosa "Foo" consentirà loro di fare.

Ma a proposito di "Altre opzioni >>"/"< < Pannello delle opzioni meno" che si apre o si chiude come "Pippo" è selezionato/deseleziona? Molto lavoro, dal punto di vista dello sviluppatore, e/o troppo giocherellare, dal punto di vista dell'utente?Mi piace il modo in cui pulisce l'interfaccia, dato che i valori predefiniti per "Foo" (quando nascosto) sono appropriati.

(Detto questo, io non uso che ovunque. La moderazione in tutte le cose buone.)

0

Un'altra opzione sarebbe quella di lasciare che l'ingresso di inserire alcuni dati, se vuole troppo, ma per auto-controllare la foo checkbox se inizia a digitare nella casella di testo foo.

Problemi correlati