一个DateTimePicker仅更改月份和年份

问题描述 投票:2回答:2

UI应该保持不变,我不想这样做:

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "mm-yyyy";
dateTimePicker1.ShowUpDown = true; 

用户可以选择年和月,也可以将DateTimePicker更改为Month / Year选择器,也可以将MonthCalendar更改为。我不想使用第三方控件,但是如果它将是唯一的答案,我将为我提供任何免费的月/年选择器控件。

c# .net winforms datetimepicker
2个回答
1
投票

这里是一个简单的DateTimePicker自定义控件,它预定义了自定义DateTime格式并修改了MonthCalendar视图,configuring仅显示打开时的月份和年份。

我添加了一个公共属性ShowToday,该属性可以指定MonthCalendar弹出窗口是否应在Calendar界面的底部显示Today日期。

自定义控件重写OnDropDown以获取MonthCalendar句柄的弹出窗口,发送DTM_GETMONTHCAL消息,并更改其当前视图,发送DTM_GETMONTHCAL,并指定MCM_SETCURRENTVIEW作为value参数。

这是它的外观:

MCM_SETCURRENTVIEW


MCMV_YEAR

0
投票

自定义格式用于确定在系统/数据库中捕获日期的方式,而与用户选择的内容无关,它不用于限制用户选择月份或年份。

© www.soinside.com 2019 - 2024. All rights reserved.