是否可以使用DateTimePicker(Winforms)选择日期和时间(在下拉菜单中)?您如何更改所选值的自定义显示方式?此外,是否可以允许用户手动输入日期/时间?
是否可以使用DateTimePicker(Winforms)选择日期和时间(在下拉菜单中)?您如何更改所选值的自定义显示方式?此外,是否可以允许用户手动输入日期/时间?
将格式设置为自定义,然后指定格式:
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";
或者您可以按照自己的方式进行布局。您可以直接输入日期/时间。如果使用MMM,除非自己编写一些代码(例如,5代表5月),否则需要使用数字值作为输入的月份。
我不知道关于日期和时间一起选择的选择器。对我来说,这听起来像一个自定义控件。
最好使用两个DateTimePickers来完成此工作。其中一个将是日期部分的默认选项,第二个DateTimePicker用于选择时间部分。请按照以下方式格式化第二个DateTimePicker。
timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
timePortionDateTimePicker.ShowUpDown = true;
在你捕获它们之后,这两个控件应该是这个样子
使用以下代码从这两个控件中获取日期时间
DateTime myDate = datePortionDateTimePicker.Value.Date +
timePortionDateTimePicker.Value.TimeOfDay;
要将 DateTime 分配给这两个控件,请使用以下代码
datePortionDateTimePicker.Value = myDate.Date;
timePortionDateTimePicker.Value = myDate.TimeOfDay;
不幸的是,这是框架中众多错误命名之一,或者最好说是SRP的违反。
要将 DateTimePicker 用于时间,请将 Format 属性设置为 Time 或 Custom(如果您想使用 CustomFormat 属性控制时间格式)。然后将 ShowUpDown 属性设置为 true。
尽管用户可以手动设置日期和时间,但他们无法使用 GUI 设置两者。
yyyy-MM-dd HH:mm
),然后返回只反映显示的日期和时间的一部分的值。我会称其为错误,但它已经存在几十年了... - EBlake很抱歉,DateTimePicker控件没有这些功能。它是一个相当基本(也很令人沮丧!)的控件。你最好的选择可能是找到一个第三方控件来实现你想要的功能。
对于手动输入日期和时间的选项,您可以构建一个自定义组件,使用TextBox / DateTimePicker组合来完成此操作,在无法使用第三方控件的情况下,这可能会非常有效。
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
和System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern
来获取当前语言环境下的日期和时间格式。MSDN链接 - Wai Ha LeeDim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " " + time
您还可以手动限制时间组件,例如:Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " HH:mm"
- SteveCinq