Apakah mungkin menggunakan DateTimePicker (Winforms) untuk memilih tanggal dan waktu (dalam dropdown)? Bagaimana Anda mengubah tampilan khusus dari nilai yang dipilih? Juga, apakah mungkin untuk memungkinkan pengguna untuk mengetik tanggal / waktu secara manual?
143
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
danSystem.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern
untuk mendapatkan format untuk budaya saat ini. Tautan MSDNDim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " " + time
Anda juga dapat membatasi, katakanlah, komponen waktu secara manual:Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " HH:mm"
Yang terbaik adalah menggunakan dua DateTimePickers untuk Job One akan menjadi default untuk bagian tanggal dan DateTimePicker kedua adalah untuk bagian waktu. Format DateTimePicker kedua sebagai berikut.
Keduanya harus terlihat seperti ini setelah Anda menangkapnya
Untuk mendapatkan DateTime dari kedua kontrol ini gunakan kode berikut
Untuk menetapkan DateTime ke kedua kontrol ini gunakan kode berikut
sumber
Sayangnya, ini adalah salah satu dari banyak misnomers dalam kerangka kerja, atau paling tidak merupakan pelanggaran terhadap SRP.
Untuk menggunakan DateTimePicker beberapa kali, atur properti Format ke Time atau Custom (Gunakan Custom jika Anda ingin mengontrol format waktu menggunakan properti CustomFormat). Kemudian setel properti ShowUpDown menjadi true.
Meskipun pengguna dapat mengatur tanggal dan waktu bersama secara manual, mereka tidak dapat menggunakan GUI untuk mengatur keduanya.
sumber
DateTime Picker dapat digunakan untuk memilih tanggal dan waktu itulah sebabnya disebut 'Date and Time Picker'. Anda dapat mengatur properti " Format " menjadi " Kustom " dan mengatur kombinasi penentu format yang berbeda untuk mewakili / memilih tanggal / waktu dalam format yang berbeda di properti " Format Kustom ". Namun jika Anda ingin mengubah Tanggal, maka kalender pop-up dapat digunakan sedangkan dalam hal pemilihan Waktu (dalam kontrol yang sama Anda terikat untuk menggunakan tombol naik / turun untuk mengubah nilai.
Misalnya format khusus " ddddd, MMMMdd, yyyy hh: mm: ss tt " akan memberikan Anda hasil seperti ini: " Kamis, 20 Agustus 2009 02:55:23 PM ".
Anda dapat bermain-main dengan kombinasi berbeda untuk penentu format yang sesuai dengan kebutuhan Anda, misalnya MMMM akan memberikan " Agustus " sedangkan MM akan memberikan " Agustus "
sumber
yyyy-MM-dd HH:mm
) dan kemudian mengembalikan nilai yang mencerminkan hanya sebagian dari tanggal dan waktu yang ditampilkan . Saya menyebutnya bug, tetapi sudah ada selama beberapa dekade ...Pergi ke
Properties
dari AndadateTimePicker
di Visual Studio dan aturFormat
keCustom
. Di bawahCustomFormat
masukkan format Anda. Dalam kasus saya, saya menggunakanMMMMdd, yyyy | hh:mm
sumber
Anda bisa mendapatkannya untuk menampilkan waktu . Dari itu Anda mungkin harus memiliki dua kontrol (satu tanggal, satu kali) untuk mencapai apa yang Anda inginkan.
sumber
Saya khawatir kontrol DateTimePicker tidak memiliki kemampuan untuk melakukan hal-hal itu. Ini adalah kontrol yang cukup mendasar (dan membuat frustrasi!). Pilihan terbaik Anda mungkin menemukan kontrol pihak ketiga yang melakukan apa yang Anda inginkan.
Untuk opsi mengetik tanggal dan waktu secara manual, Anda bisa membangun komponen khusus dengan kombinasi TextBox / DateTimePicker untuk mencapai ini, dan itu mungkin bekerja dengan cukup baik, jika kontrol pihak ketiga bukan opsi.
sumber