我正在创建一个ComboBox
允许用户选择日期的自定义;日历显示是本地化的,使得内置的DateTimePicker
不受欢迎[更多信息请参见此处]。我需要 UI 控件来反映外观或现有组件。这是我尝试过的和遇到的问题:
- 使用
TextBox
带有绘制ComboBox
按钮的 a:我尝试过使用ComboBoxRenderer.DrawDropDownButton
,但外观与现有 UI 控件不相符。特别是我们没有Application.EnableVisualStyles()
这样的按钮具有 Windows 98 的外观和感觉。ComboBoxRenderer
绘制一个有光泽的灰色按钮。 - 使用 a
ComboBox
和 aToolStripDropDown
包含日历控件:按钮具有正确的外观和感觉,但我无法完全隐藏下拉框。尽管ToolStripControlHost
有效地隐藏了下拉框,但当我单击按钮时,我可以看到下拉框在显示之前呈现ToolStripDropDown
。我已经尝试过有效禁用下拉框的解决方法,但是正如您所期望的那样,按钮并没有保持所期望的被按下的视觉状态(并且绘制按钮让我回到了上述问题)。将下拉框的高度设置为零OnMeasureItem
不起作用;虽然我想我可以使下拉框与我的日历 UI 选择器的高度相同,这样渲染看起来就不会特别糟糕。
是否存在获得我需要的行为的现有机制:aTextBox
显示带有下拉箭头按钮的选定日期,单击该按钮时会显示日历 UI 选择组件。日历组件已经存在,并且按钮必须看起来像现有的 Windows 98 外观ComboBox
按钮。
感谢您的时间和帮助。