解决:主要问题在事件的选择上,如果写在selected等事件中时,与复选框的选择有出入,不适合(如双击等),写在ItemCheck事件上时发现是在选中前,导致正在选的Item值判断延迟。
所以最好选择与Check直接挂钩的ItemCheck事件,同时对正在Check的Item进行特殊处理,使用异或(!=)运算。
11.问题: 兼容性,其他组件的下拉支持
解决:在TypeC中添加Other条目,当下拉类型为Other时,设置DropDown内容为普通Control,调用方可以通过设置SetDropDown(Control)来设置要显示的组件内容。
12.问题: 下拉面板颜色在Windows不同主题下显示问题
解决:由于在Windows的经典模式下,使用Sytem.XXX 调用不到颜色,导致下拉框颜色显示不出。
绘制时使用Color.XXX中的颜色,在不同系统模式下显示都正常。
四、使用方法
1. 放下拉复选列表
① 界面拖出HsComboBox
② 设置属性CtlType = CheckedListBox
③ (可选)代码调用hsComboBox.SetDropDown(CheckedListBox)重新设置内容
④ 代码调用hsComboBox. CheckedListBox可获取组件
2. 放下拉树形
⑤ 界面拖出HsComboBox
⑥ 设置属性CtlType = TreeView
⑦ (可选)代码调用hsComboBox.SetDropDown(TreeView)重新设置内容
⑧ 代码调用hsComboBox. TreeView可获取组件
3. 做普通ComboBox
⑨ 界面拖出HsComboBox
⑩ 设置属性CtlType = Null
4. 放任意Control
? 界面拖出HsComboBox
? 设置属性CtlType = Other
? 代码调用hsComboBox.SetDropDown(Control)放入内容
? 代码调用hsComboBox.Control可获取组件
五、注意要点
1. ComboBox的Text设置
调用函数ShowText()设置Text内容,可用于自定义组件的事件等
2. DropDownStyle
为禁止文本手工输入,DropDownStyle将在构造函数中设为DropDownList
以上所述是小编给大家介绍的C# 重写ComboBox实现下拉任意组件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ASPKU网站的支持!
注:相关教程知识阅读请移步到c#教程频道。










