Làm cho DateTimePicker hoạt động như TimePicker chỉ trong WinForms


83

Làm thế nào để hạn chế DateTimePickerchỉ chọn thời gian? Tôi không biết cách tắt điều khiển lịch sẽ giảm xuống khi bạn nhấn vào nút ở bên phải DateTimePicker.

Câu trả lời:


139

Một đoạn mã trong MSDN :

'Mẫu mã sau đây cho thấy cách tạo DateTimePicker cho phép người dùng chỉ chọn thời gian.'

timePicker = new DateTimePicker();
timePicker.Format = DateTimePickerFormat.Time;
timePicker.ShowUpDown = true;

9
Ha, giải pháp rất đơn giản: chỉ cần đặt thuộc tính ShowUpDown của datetimepicker thành true và đặt Format thành DateTimePickerFormat.Time. Chỉ đặt Định dạng thành DateTimePickerFormat.Time là không đủ.
Blablablaster

41

... hoặc cách khác nếu bạn chỉ muốn hiển thị một phần giá trị thời gian, hãy sử dụng "Tùy chỉnh":

timePicker = new DateTimePicker();
timePicker.Format = DateTimePickerFormat.Custom;
timePicker.CustomFormat = "HH:mm"; // Only use hours and minutes
timePicker.ShowUpDown = true;

5
Nếu bạn sử dụng tuyến đường này và bạn cần chỉ định AM hoặc PM, bạn có thể thêm ttvào chuỗi. Danh sách đầy đủ các tùy chọn định dạng tại đây: msdn.microsoft.com/en-us/library/…
AdamMc331

14

Bạn muốn đặt thuộc tính 'Định dạng' thành thời gian và thêm điều khiển nút xoay vào đó:

yourDateTimeControl.Format = DateTimePickerFormat.Time;
yourDateTimeControl.ShowUpDown = true;

2

Nếu bạn muốn thực hiện điều đó từ các thuộc tính, bạn có thể thực hiện việc này bằng cách đặt thuộc Formattính của DateTimePickerđến DateTimePickerFormat.Timevà thuộc ShowUpDowntính thành true. Ngoài ra, customFormatcó thể được đặt trong thuộc tính.


1

Cách tốt nhất để làm điều này là:

datetimepicker.Format = DatetimePickerFormat.Custom;
datetimepicker.CustomFormat = "HH:mm tt";
datetimepicker.ShowUpDowm = true;

Tôi thích cách bạn thêm "tt" vào định dạng tùy chỉnh để chúng tôi có thể chọn SA hoặc CH
Jamisco

-2

Thêm sự kiện bên dưới vào DateTimePicker

Private Sub DateTimePicker1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles DateTimePicker1.KeyPress
    e.Handled = True
End Sub

2
Ngôn ngữ này chắc chắn không giống C #. Ngoài ra, bạn nên giải thích mã đó làm gì. Làm thế nào nó vô hiệu hóa các thay đổi của ngày, nhưng giữ lại các thay đổi của thời gian.
David Ferenczy Rogožan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.