Czy można użyć DateTimePicker (Winforms), aby wybrać zarówno datę, jak i godzinę (z listy rozwijanej)? Jak zmienić niestandardowy sposób wyświetlania wybranej wartości? Czy można również umożliwić użytkownikowi ręczne wpisywanie daty / godziny?
143
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
i,System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern
aby uzyskać format dla bieżącej kultury. Łącze MSDNDim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " " + time
Możesz również ograniczyć, powiedzmy, składnik czasu ręcznie:Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " HH:mm"
Najlepiej jest użyć dwóch DateTimePickers dla zadania. Pierwsza będzie domyślna dla sekcji daty, a druga DateTimePicker dla części czasu. Sformatuj drugi DateTimePicker w następujący sposób.
Po złapaniu Dwójka powinna wyglądać tak
Aby uzyskać DateTime z obu tych kontrolek, użyj następującego kodu
Aby przypisać DateTime do obu tych kontrolek, użyj następującego kodu
źródło
Niestety jest to jedna z wielu błędnych nazw w ramach lub w najlepszym przypadku naruszenie SRP.
Aby użyć DateTimePicker dla godzin, ustaw właściwość Format na Time lub Custom (użyj Custom, jeśli chcesz kontrolować format czasu za pomocą właściwości CustomFormat). Następnie ustaw właściwość ShowUpDown na true.
Chociaż użytkownik może ręcznie ustawić datę i godzinę, nie może użyć GUI do ustawienia obu.
źródło
Selektor dat i godzin może służyć do wybierania zarówno daty, jak i godziny, dlatego nazywa się go „Selektor daty i godziny”. Możesz ustawić właściwość „ Format ” na „ Niestandardowy ” i ustawić kombinację różnych specyfikatorów formatu do reprezentowania / wybierania daty / godziny w różnych formatach we właściwości „ Format niestandardowy ”. Jeśli jednak chcesz zmienić datę, możesz użyć kalendarza podręcznego, podczas gdy w przypadku wyboru czasu (w tej samej kontrolce musisz użyć klawiszy góra / dół do zmiany wartości.
Na przykład niestandardowy format „ ddddd, MMMM dd, rrrr gg: mm: ss tt ” da następujący wynik: „ Czwartek, 20 sierpnia 2009 14:55:23 ”.
Możesz pobawić się różnymi kombinacjami dla specyfikatorów formatu, aby dopasować je do swoich potrzeb, np. MMMM poda „ sierpień ”, podczas gdy MM poda „ sierpień ”
źródło
yyyy-MM-dd HH:mm
), a następnie zwrócić wartość, która odzwierciedla tylko część wyświetlanej daty i godziny. Nazwałbym to błędem, ale istnieje od dziesięcioleci ...Przejdź do
Properties
swojegodateTimePicker
w programie Visual Studio i ustawFormat
naCustom
. PodCustomFormat
wprowadź swój format. W moim przypadku użyłemMMMMdd, yyyy | hh:mm
źródło
Możesz go zmusić do wyświetlania czasu . Z tego powodu prawdopodobnie będziesz musiał mieć dwie kontrole (jedna data, jeden raz), aby osiągnąć to, co chcesz.
źródło
Obawiam się, że formant DateTimePicker nie ma możliwości wykonywania tych czynności. To dość prosta (i frustrująca!) Kontrola. Najlepszym rozwiązaniem może być znalezienie kontrolki innej firmy, która robi to, co chcesz.
W przypadku opcji ręcznego wpisywania daty i godziny można zbudować niestandardowy komponent z kombinacją TextBox / DateTimePicker, aby to osiągnąć, i może to działać całkiem dobrze, jeśli kontrolki innych firm nie są opcją.
źródło