DateTimePicker:同时选择日期和时间

时间:2020-03-06 14:21:51  来源:igfitidea点击:

是否可以使用DateTimePicker(Winforms)同时选择日期和时间(在下拉菜单中)?如何更改选择值的自定义显示?另外,是否可以使用户手动输入日期/时间?

解决方案

不幸的是,这是框架中许多错误的说法之一,或者充其量是违反SRP的。

要使用DateTimePicker作为时间,请将Format属性设置为Time
或者自定义(如果要使用以下方式控制时间格式,请使用"自定义"
CustomFormat属性)。然后将ShowUpDown属性设置为true。

尽管用户可以手动设置日期和时间,但是他们不能使用GUI设置两者。

将格式设置为自定义,然后指定格式:

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";

或者我们想布置它。然后,我们可以直接输入日期/时间。如果我们使用MMM,则需要使用输入月份的数值,除非我们自己为此编写了一些代码(例如,5月份有5个结果)

不知道日期和时间的选择器。对我来说,这听起来像是自定义控件。

我们可以获取它来显示时间。因此,我们可能必须具有两个控件(一个日期,一次)来完成所需的操作。

恐怕DateTimePicker控件无法执行这些操作。这是一个非常基本的(令人沮丧的!)控件。最好的选择可能是找到可以满足我们需求的第三方控件。

对于手动键入日期和时间的选项,我们可以使用TextBox / DateTimePicker组合构建自定义组件来完成此操作,并且如果没有第三方控件的话,它可能运行得很好。

DateTime Picker可用于同时选择日期和时间,这就是为什么它被称为" Date and Time Picker"。我们可以将"格式"属性设置为"自定义",并在"自定义格式"属性中设置不同格式说明符的组合以表示/选择不同格式的日期/时间。但是,如果要更改日期,则可以使用弹出日历,而在选择时间的情况下(在同一控件中,我们必然会使用向上/向下键来更改值。

例如,自定义格式" ddddd,MMMM dd,yyyy hh:mm:ss tt"将为我们提供如下结果:" 2009年8月20日星期四02:55:23 PM"。

我们可以根据需要使用不同的格式说明组合,例如MMMM将给出" August",而MM将给出" Aug"