Я создаю пользовательский ComboBox
, который позволяет пользователю выбирать дату; дисплей календаря локализован, что делает встроенный DateTimePicker
нежелательным [см. here для получения дополнительной информации]. Мне нужен элемент управления пользовательского интерфейса, чтобы отразить внешний вид и существующие компоненты. Вот что я пытался и проблемы, я столкнулся:Custom DateTimePicker: получение последовательного внешнего вида
- Использование в
TextBox
с обнаженнымComboBox
кнопку: Я попытался с помощьюComboBoxRenderer.DrawDropDownButton
, но внешний вид не отражает существующие элементы управления пользовательского интерфейса. В частности, у нас нетApplication.EnableVisualStyles()
, поэтому кнопки имеют внешний вид Windows 98.ComboBoxRenderer
рисует глянцевую серую кнопку. - Использование
ComboBox
иToolStripDropDown
для управления календаря: кнопка имеет правильный внешний вид, но я не могу полностью скрыть раскрывающееся окно. Несмотря на то, чтоToolStripControlHost
эффективно скрывает раскрывающийся список, когда я нажимаю кнопку, я вижу, что выпадающее поле отображается только перед отображениемToolStripDropDown
. Я пробовал обходные пути, которые эффективно отключили раскрывающийся список, но кнопка, как и следовало ожидать, не поддерживает желаемое визуальное состояние нажатия (и рисование кнопки возвращает мне проблему в вышеуказанной точке). Установка высоты выпадающего окна до нуля вOnMeasureItem
не работает; хотя я полагаю, что я мог бы сделать раскрывающийся ящик той же высотой, что и мой календарный пользовательский интерфейс, чтобы рендеринг выглядел не очень плохо.
Есть ли существующие механизмы, чтобы получить поведение мне нужно: TextBox
, который отображает выбранную дату с падением кнопки со стрелкой вниз, при нажатии, отображает компонент календарь выбора пользовательского интерфейса. Компонент календаря уже существует, и кнопка должна выглядеть как существующие кнопки Windows 98 и кнопки ComboBox
.
Спасибо за ваше время и помощь.