Lassen Sie DateTimePicker nur in WinForms als TimePicker funktionieren

83

Wie kann DateTimePickerich einschränken , dass nur die Zeit ausgewählt wird? Ich weiß nicht, wie ich die Kalendersteuerung deaktivieren soll, die beim Drücken der Taste rechts von abfällt DateTimePicker.

Blablablaster
quelle

Antworten:

139

Ein Ausschnitt aus dem MSDN :

"Das folgende Codebeispiel zeigt, wie ein DateTimePicker erstellt wird, mit dem Benutzer nur eine Uhrzeit auswählen können."

timePicker = new DateTimePicker();
timePicker.Format = DateTimePickerFormat.Time;
timePicker.ShowUpDown = true;
Peter
quelle
9
Ha, die Lösung war einfach: Setzen Sie einfach die ShowUpDown-Eigenschaft von datetimepicker auf true und Format auf DateTimePickerFormat.Time. Es reicht nicht aus, nur Format auf DateTimePickerFormat.Time zu setzen.
Blablablaster
41

... oder alternativ, wenn Sie nur einen Teil des Zeitwerts anzeigen möchten, verwenden Sie "Benutzerdefiniert":

timePicker = new DateTimePicker();
timePicker.Format = DateTimePickerFormat.Custom;
timePicker.CustomFormat = "HH:mm"; // Only use hours and minutes
timePicker.ShowUpDown = true;
Sverrir Sigmundarson
quelle
5
Wenn Sie diese Route verwenden und AM oder PM angeben müssen, können Sie ttsie der Zeichenfolge hinzufügen . Vollständige Liste der Formatoptionen
AdamMc331
14

Sie möchten die Eigenschaft 'Format' auf Zeit einstellen und ihr ein Steuerelement für Drehknöpfe hinzufügen:

yourDateTimeControl.Format = DateTimePickerFormat.Time;
yourDateTimeControl.ShowUpDown = true;
Siehe scharf
quelle
2

Wenn Sie dies über Eigenschaften tun möchten, können Sie dies tun, indem Sie die FormatEigenschaft von DateTimePickerto DateTimePickerFormat.Timeund die ShowUpDownEigenschaft auf festlegen true. Auch customFormatkann in Eigenschaften festgelegt.

sgupta
quelle
1

Der beste Weg, dies zu tun, ist folgender:

datetimepicker.Format = DatetimePickerFormat.Custom;
datetimepicker.CustomFormat = "HH:mm tt";
datetimepicker.ShowUpDowm = true;
Randy Peña Jimenez
quelle
Mir gefällt, wie Sie das "tt" zum benutzerdefinierten Format hinzugefügt haben, damit wir AM oder PM
Jamisco
-2

Fügen Sie DateTimePicker das folgende Ereignis hinzu

Private Sub DateTimePicker1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles DateTimePicker1.KeyPress
    e.Handled = True
End Sub
Nagaraju Mengani
quelle
2
Diese Sprache sieht definitiv nicht wie C # aus. Außerdem sollten Sie erklären, was dieser Code bewirkt. Wie es Datumsänderungen deaktiviert, aber Zeitänderungen beibehält.
David Ferenczy Rogožan