Pergunta

Eu definir as propriedades MaxDate e MinDate de um DateTimePicker. No entanto, quando eu testar o controle em tempo de execução, não há nenhuma maneira de dizer as datas inválidos dos válidos. A única diferença é que o clique em uma data inválida não faz nada.

Isto não é muito intuitiva para o usuário. Eu quero ser capaz de dizer em poucas palavras o que as datas são válidos.

Existe alguma maneira de destacar o intervalo de datas válido - ou mais apropriadamente, 'dim' as datas inválidos? Ou, há outro controle que seria mais apropriado? Estou certo de um par de caixas de combinação iria funcionar, mas eu realmente acho que o usuário deve ser apresentado com um controle de calendário quando perguntado sobre uma data.

CONTEXTO: Este é um WinForms gráficos aplicação. O intervalo de dados válidos é fixo (novos dados são adicionados por meio de outro processo). As necessidades do usuário para escolher uma data e hora para o horário de início do gráfico (bem como a duração, que é tratado separadamente).

Foi útil?

Solução

Eu tenho um problema semelhante. Eu já estendeu o controle DateTimePicker para executar um processo de validação sempre que o valor muda e quer reverter para o valor anterior ou para o valor legal mais próximo, no caso de uma escolha ilegal.

A extensão lógica para isso é a piscar-se um diálogo de aviso ou etiqueta para informar ao usuário que isso tenha acontecido.

Você também pode substituir a parte do controle de exibição calendário para destaque / lowlight as opções inválidos - já destaca o dia atual e a seleção atual, por exemplo.

Outras dicas

Im não tem certeza de que há sem estender o controle mesmo, e desenho proprietário que seria um esforço.

Se você não puder encontrar a funcionalidade o seu depois, eu consideraria o uso de um controle ErrorProvider e validar a entrada de usuários como uma opção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top