No começo da carreira, algumas vezes tentei procurar algum componente para winforms que conseguisse mostrar corretamente valores DateTime?. Nunca encontrei nada por ser algo simples de se fazer, mas na época, pra mim era difícil.
Abaixo segue o código do Componente de forma bem simples.
DateTimePickerNullable
- public class DateTimePickerNullable : System.Windows.Forms.DateTimePicker
- {
- public DateTimePickerNullable()
- : base()
- { base.ShowCheckBox = true; }
- public new bool ShowCheckBox { get { return true; } }
- public new DateTime? Value
- {
- get
- {
- if (this.Checked)
- return base.Value;
- return null;
- }
- set
- {
- base.Value = value ?? base.MinDate;
- if (value == null)
- this.Checked = false;
- }
- }
- }
via Writerous