Ich hatte heute das Problem das ich mit dem DateTimePicker einen Nothing wert darstellen wollte. Der DateTimePicker hat eine so schöne Checkbox mit der man das Datum deaktivieren kann. Wieso bei einem deaktiviertem nicht einfach ein Nothing als Value zurückgegeben wird bleibt Microsofts Geheimnis. Zum glück können wir das Control aber ableiten 🙂
Public Class NullableDateTimePicker
Inherits DateTimePicker
Public Sub New()
MyBase.New()
InitializeComponent()
End Sub
Public Shadows Property Value() As Nullable(Of DateTime)
Get
If Not MyBase.Checked Then
Return Nothing
Else
Return New Nullable(Of DateTime)(MyBase.Value)
End If
End Get
Set(ByVal value As Nullable(Of DateTime))
If value.HasValue = False Then
MyBase.Value = DateTime.Now
MyBase.Checked = False
Else
MyBase.Value = value.Value
MyBase.Checked = True
End If
End Set
End Property
End Class
Indem wir die Valueeigenschaft überschreiben lässt sich daraus ein richtig gutes Control machen 🙂
Gruss Marco
Schreibe einen Kommentar