2016-01-18 3 views
7

Так что вместо этого появляется при нажатии выпадающего меню.Как я могу установить выпадающее меню datetimepicker, чтобы показывать только месяцы

enter image description here

Я хочу раскрывающийся быть, как это при нажатии.

enter image description here

Большое спасибо за любую помощь. :)

+0

Winforms или WPF? – Tyress

+0

о, извините. забыл упомянуть. Это на окнах. – Bigboss

+0

Формы Windows или Windows WPF? Я предполагаю, что Windows = Windows Forms. – Tyress

ответ

0

Попробуйте использовать свойства Формат:

dateTimePicker.Format = DateTimePickerFormat.Custom; 
dateTimePicker.CustomFormat = "MM"; 
+0

Уже пробовал это. Единственное, что изменилось, это отображение, но при нажатии выпадающего меню. Он все еще показывает дни. – Bigboss

+1

См. Мой обновленный ответ. Я думаю, вам нужно заменить DayTicker на MonthCalendar, если вы хотите показать календарь без дня. – FrozenFire

+0

Я прочитал редактирование ur, но какие параметры следует изменить в классе MonthCalendar. Я считаю, что этот класс используется для datetimepicker при нажатии выпадающего меню. – Bigboss

2

Почему вы должны сделать это? Если вы хотите отображать «Месяцы», то более простой способ - иметь список месяцев в Combox.

Однако я нашел что-то для вас на msdn. Посмотрите здесь https://social.msdn.microsoft.com/Forums/en-US/7bdca56f-719e-44bf-be6d-a9600dfa8f78/wpf-datepicker-for-months-only?forum=wpf

+0

, потому что мне нужен только пользователь, чтобы выбрать месяц и не хочу вводить их в заблуждение, думая, что дата также должна быть точной, поэтому единственное, что важно, это месяц. – Bigboss

+2

@Bigboss Список месяцев в ComboBox - это стандартное решение для того, что вам нужно. –

+1

@JeremyThompson, но как насчет того, хочу ли я год? – Bigboss

1

Попробуйте следующий код:

DateTime newDateValue = new DateTime(dateTimePicker_month.Value.Year, 1, 1); 
dateTimePicker_month.Value = newDateValue; 
dateTimePicker_month.Format = DateTimePickerFormat.Custom; 
dateTimePicker_month.CustomFormat = "MMM-yyyy"; 
dateTimePicker_month.ShowUpDown = true; 

Вы должны добавить (1,1) за февраль месяц, который, имеющий 28/29 дней, чтобы установить весь месяц values.If вы хотите запрос, чтобы выбрать month.Following пример:

string month = dateTimePicker_month.Value.Month.ToString(); 
string year = dateTimePicker_month.Value.Year.ToString(); 

использовать следующий запрос, чтобы выбрать месяц:

select CAST(date AS DATE) from table where DATEPART(month, date) = '" + month + "' and DATEPART(year,date) = '" + year + "' 
Смежные вопросы