Das DateTimePicker-Control eignet sich hervorragend, wenn man darauf angewiesen ist, dass der Benutzer ein Datum und/oder eine Uhrzeit einzugeben hat. Das Control vereinfacht die Benutzereingabe, kann aber auch gleich Falscheingaben verhindern. So sind Falscheingaben wie der der 31. Februar oder auch die Eingabe eines Datum größer oder kleiner eines Bestimmten Datums durch das Setzen von Min-/Max-Datum nicht mehr möglich.
Die wichtigsten Anwendungen und Eigenschaften des DateTimePickers sind hier kurz erläutert.
Datum dem DateTimePicker zuweisen
Per Standard zeigt der DateTimePicker das aktuelle Datum und ggfls. auch die aktuelle Uhrzeit an. Per „Value“ kann dem DateTimePicker ein bestimmtes Datum zugewiesen werden.
// Bestimmtes Datum zuweisen dateTimePicker1.Value = new DateTime(2010, 3, 11); //Aktuelles Datum zuweisen -> default // Sinnvoll um Datum bei Bedarf wieder auf aktuelles Datum zurückzusetzen dateTimePicker1.Value = System.DateTime.Now;
Um beispielsweise ein gespeichertes Datum aus einer SQL-Datenbank dem DateTimePicker zuzuweisen, verwenden Sie am Einfachsten den folgenden Programmcode:
dateTimePicker1.Value = Convert.ToDateTime(table.Rows[0]["mein-SQL-datum"].ToString());
Wenn Sie ein Datum Plus/Minus Tage, Monate oder Jahre vom aktuellen Datum aus vorbelegen möchten (beispielsweise ein Mahndatum: plus vier Wochen), kann wie im folgenden Code dem DateTimePicker eine Zuweisung erfolgen.
// Jahre ändern dateTimePicker1.Value = System.DateTime.Now.AddYears(-5); // Tage ändern dateTimePicker1.Value = datePicker.Value.AddDays(7);
Datum aus DateTimPicker auslesen
Das vom Benutzer eingegebene Datum kann einfach über den “Value”-Wert des dateTimePickers auch wieder ausgelesen werden.
//Datum einem String zuweisen String sDatum = dateTimePicker1.Value;
Wenn wir das Datum jedoch in einem bestimmten Format benötigen (oder unsere Anwendung auch in anderen Länderregionen verbindlich funktionieren soll), müssen wir das Datum casten. Im folgenden Fall soll das Datum in eine SQL-Datenbank (Feld beispielsweise: „smalldatetime“) geschrieben werden:
//Datum aus DateTimePicker für SQL aufbereiten: yyyy-MM-dd DateTime meindatum; meindatum = dateTimePicker1.Value; string sMeinDatum = meindatum.ToString("yyyy-MM-dd");
DateTimePicker: Anzeigen der Checkbox
Der DateTimePicker hat eine verborgene Checkbox, die angezeigt werden kann. Die Anwendung der Checkbox ist vielfältig. Im Standard dient sie dazu, dass erst mit aktivierter Checkbox der Benutzer das Datum verändern kann. Ein anderer Anwendungsfall ist die Möglichkeit, beispielsweise bei einem Bestellverwaltungs-System, ein bestimmtes Datum nicht als Pflichtfeld zu deklarieren, sondern erst einmal optional zu erlauben. Beispielsweise ist das Versanddatum beim Erfassen einer Bestellung noch nicht bekannt. Per Standard hätte der DateTimePicker gleich das Tagesdatum; das Enablen des DateTimePickers verhindert die Datumseingabe. Anhand der Checkbox kann der Benutzer so das Datum explizit auswählen und setzen.
dateTimePicker1.ShowCheckBox = true;
Datum begrenzen im DateTimePicker
// Setze das Min- und das Maximum-Datum dateTimePicker1.MinDate = new DateTime(1990, 12, 24); dateTimePicker1.MaxDate = DateTime.Today;
Anzeige von Kalender zur Auswahl oder UpDown (Spin Button)
Der DateTimePicker zeigt per Standard einen Kalender zur Datumsauswahl an (einfaches Down-Icon am Ende der Box). Mit ShowUpDown = true ändert sich diese Anzeige. Das einfache Down-Icon ändert sich in ein UpDown, über das das Datum verändert werden kann.
dateTimePicker1.ShowUpDown = true;
Datum-Anzeige ändern: Kurzes Datum (ohne Wochentag), nur Uhrzeit
Per Standard zeigt der DateTimePicker neben dem Datum auch den Wochentag an. Dieses Verhalten können Sie per Custom-Format (siehe weiter unten) ändern. Einfacher geht es über die Änderung der Format-Eigenschaft: „Format: Short“
Um nur die Uhrzeit anzuzeigen, verwenden Sie einfach: „Format: Time“
Individuelle Anzeige durch das Custom-Format
Custom-Format: Anzeige von Wochentag und Datum
// Setze das Custom-Format Wochentag Tag Monat Yahr dateTimePicker1.CustomFormat = "dddd dd MMMM yyyy"; dateTimePicker1.Format = DateTimePickerFormat.Custom;
Custom-Format: Nur Datum anzeigen
Der DateTimePicker ist vom Platz her sehr mächtig. Wer in seiner Form mit der Platz sparsamer umgehen muss, der kann auf den Wochentag in der geschlossenen Ansicht des DateTimePickers verzichten. Ein Beispiel dazu zeigt das folgende Custom-Format
// Nur Datum anzeigen dateTimePicker1.CustomFormat = "dd MMMM yyyy"; dateTimePicker1.Format = DateTimePickerFormat.Custom;
Anzeigen der Uhrzeit im DateTimePicker
Der DateTimePicker kann sehr gut für die Anzeige der Uhrzeit verwendet werden:
dateTimePicker1.Format = DateTimePickerFormat.Time; dateTimePicker1.ShowUpDown = true;
Durch diesen Code kann die Uhrzeit angezeigt werden. Das Control eignet sich aber auch, um Uhrzeit-Benutzereingaben entgegenzunehmen.
Kalender im DateTimePicker LeftRightAlignment
Per Standard blendet sich der Kalender im DateTimePicker linksbündig ein. Eine einfache Änderung lässt den Kalender rechtsbündig erscheinen:
dateTimePicker1.DropDownAlign = LeftRightAlignment.Right;