NullableDateTimePicker

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

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert