Выбор даты .Net cf - это PITA.
Вы пытались перехватить и переопределить событие KeyUp для кнопки «Вправо», когда фокус находится на средстве выбора даты? Вы можете посчитать, сколько раз была нажата «правая» клавиша, и таким образом вы можете подделать настройку позиции: установите переменную счетчика на 1, когда сборщик даты получает фокус, и увеличивайте на единицу, когда вы перехватываете «правую» клавишу. Проверьте, является ли это клавишей «Вправо» и является ли переменная-счетчик кратной трем, установите e.Handled = true, чтобы предотвратить выполнение поведения по умолчанию. Конечно, ваша логика переопределения будет заключаться в том, чтобы установить фокус на следующий элемент управления.
Редактировать: не забудьте уменьшить счетчик var при нажатии левой клавиши!
Пользовательский вариант: я думаю, что вам лучше всего создать собственный пользовательский элемент управления датой. я сделал это Это не так уж сложно. Это вопрос выравнивания трех текстовых полей в элементе управления и выполнения некоторой базовой проверки. Вы также все еще используете календарную часть сборщика, если вам нужно.
Также стоит заглянуть в OpenNetCF . В нем масса классов, хотя я не уверен, будет ли альтернатива сборщику даты. Тем не менее, если вы серьезно занимаетесь разработкой CF, стоит посмотреть.