Domanda

Ho impostato le proprietà MaxDate e MinDate di un DateTimePicker. Tuttavia, quando collaudo il controllo in fase di esecuzione, non c'è modo di dire le date non valide da quelle valide. L'unica differenza è che fare clic su una data non valida non fa nulla.

Questo non è molto intuitivo per l'utente. Voglio essere in grado di dire a colpo d'occhio quali sono le date valide.

Esiste un modo per evidenziare l'intervallo di date valido o, più appropriatamente, 'oscurare' le date non valide? Oppure, c'è un altro controllo che sarebbe più appropriato? Sono sicuro che un paio di caselle combinate funzionerebbero, ma penso davvero che all'utente dovrebbe essere presentato un controllo del calendario quando gli viene chiesto un appuntamento.

CONTESTO: questa è un'applicazione per la creazione di grafici di WinForms. L'intervallo di dati validi è fisso (i nuovi dati vengono aggiunti tramite un altro processo). L'utente deve scegliere una data e un'ora per l'ora di inizio del grafico (nonché una durata, gestita separatamente).

È stato utile?

Soluzione

Ho un problema simile. Ho esteso il controllo DateTimePicker per eseguire un processo di convalida ogni volta che il valore cambia e per ripristinare il valore precedente o il valore legale più vicino in caso di scelta illegale.

L'estensione logica di questo è di far lampeggiare una finestra di dialogo o un'etichetta di avviso per informare l'utente che ciò è accaduto.

È inoltre possibile ignorare la parte di visualizzazione del calendario del controllo per evidenziare / evidenziare le opzioni non valide: evidenzia già il giorno corrente e la selezione corrente, ad esempio.

Altri suggerimenti

Non sono sicuro che ci sia senza estendere il controllo da soli e il disegno del proprietario che sarebbe uno sforzo.

Se non riesci a trovare la funzionalità che cerchi, prenderei in considerazione l'uso di un controllo ErrorProvider e la convalida dell'input dell'utente come opzione.

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