Если вам нужен только месяц и год, мне кажется, что вам не следует использовать DatePicker в первую очередь ... зачем предоставлять пользователю элемент управления, который включает день месяца, когда он не должен его использовать?
Я бы посоветовал вам использовать два раскрывающихся списка , один на год и один на месяц. Это будет знакомо пользователям практически на каждой странице онлайн-платежей, и это поможет избежать проблем.
РЕДАКТИРОВАТЬ: Хорошо, чтобы ответить на конкретный вопрос об обработке исключений, вы можете использовать событие Application.ThreadException
, но я бы постарался избежать этого, если сможете.
Could you set the DateTimePicker's ShowUpDown property to true so that the control becomes a spinner rather than a calendar drop-down?
Вы не можете ввести только месяц / год без дня. Если день не указан явно, используется текущий день. DateTimePicker нуждается во всех данных - неважно, скрываете ли вы их за маской.
Единственный способ заставить DateTimePicker это сделать - это, типичный ответ .NET , написать свой собственный класс, производный из DateTimePicker
и имеет собственный способ обработки ввода без учета дней.
В любом случае, вы не уйдете, не установив день ...
Если позволите: я предлагаю MaskedTextBox
с маской, установленной на '00 / 0000 '(формат кредитной карты), а затем проверка ввода.