[100分-200分] C# WinForm: ComboBox 下 拉 边 框 颜 色 如 何 修 改

KaKaKaKa 2010-05-07 09:50:58
C# WinForm:

如何修改ComboBox的下拉框的边框颜色,系统默认是黑色,想换个颜色。

注意:不是ComboBox的边框色,也不是下拉项的颜色,而是下拉出来的那个框的边框色
...全文
1799 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng_song 2010-07-03
  • 打赏
  • 举报
回复
kan kan
捷哥1999 2010-05-07
  • 打赏
  • 举报
回复
3楼给的不是WinForm的例子
皇城龙三 2010-05-07
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xxcainiao/archive/2008/06/11/1217313.html

修改ComboBox的下拉框的边框颜色

实例和源码
KaKaKaKa 2010-05-07
  • 打赏
  • 举报
回复
我当然知道是重写,
就是问如何重写。

顶者有分,up
songjd 2010-05-07
  • 打赏
  • 举报
回复
重写控件
songjd 2010-05-07
  • 打赏
  • 举报
回复
楼主,自己做一个吧。你需要的是
1. 自定义一个文本框,或者纯显示不支持输入的也可以,后面绘制一个下拉三角形图形
2. 自定义一个items集合,item也可以全部自己定义,这样可以实现很多拓展的功能。比如鼠标滑过放大缩小
之类的效果。有精力的话,WPF里面的效果也是可以模拟模拟的
3. 将items集合里的东西绘制在一个控件上。当然开始的时候你可以只模拟弹出下拉列表的效果而用lable放
几个button试试也可以
4. 重写toolstripdropdown,将边框的颜色修改,而且这个东西还可以重写成不规则形状哦~~
5. 在第一步做好的点击下拉按钮事件内,调用自己定义的toolstripdropdown dropDown,使用
ToolStripControlHost定义host,将2,3两步做好的东西放入host然后加到dropDown里面
dropdown.show()一下,定义好显示的位置。雏形差不多就OK了。
6. 在dropdown.closed的事件中,将选中的东西显示到文本区域就可以了。
大致的思路是如此,当然,其中处理上面可能有些细节的东西会比较繁琐,需要点耐心。
祝你好运。
st200316 2010-05-07
  • 打赏
  • 举报
回复
我看到过的 是重画的 把所有 选项都弄一遍 在我机子上就有只是 现在不知道放哪了 哈哈
xk1126 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 songjd 的回复:]
引用 13 楼 yangjianpro_hotmail 的回复:
查了很多,都是重绘Item或者重绘ComboBox本身边框的
没有绘制下拉边框的。。。

因为他的下拉框是一个ToolStripDropDown,你应该重写的是ToolStripDropDown。但是combobox里好像获取不到这个dropdown。
SO
[/Quote]
这两种方法一起试试就可以了!我刚试过!~
hopewoo 2010-05-07
  • 打赏
  • 举报
回复
不是只能重写,是只能自己写.
hopewoo 2010-05-07
  • 打赏
  • 举报
回复
这个和系统样式挂钩,是无法更改的,就好比你想自定义C#里面滚动条的样式一样,只能重写.
我的建议是你自己用2个控件组合起来,比如一个panel+一个没有任何项的combox,形成一个自定义控件.
然后处理下相应的事件.
songjd 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yangjianpro_hotmail 的回复:]
查了很多,都是重绘Item或者重绘ComboBox本身边框的
没有绘制下拉边框的。。。
[/Quote]
因为他的下拉框是一个ToolStripDropDown,你应该重写的是ToolStripDropDown。但是combobox里好像获取不到这个dropdown。
SO
Justin-Liu 2010-05-07
  • 打赏
  • 举报
回复
重写就是继承 然后重新定义属性或者方法 override
lester19872007 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyq11 的回复:]
自定义的颜色ComboBox
到codeproject里看看
[/Quote]
不错,不错。
KaKaKaKa 2010-05-07
  • 打赏
  • 举报
回复
查了很多,都是重绘Item或者重绘ComboBox本身边框的
没有绘制下拉边框的。。。
songjd 2010-05-07
  • 打赏
  • 举报
回复
重写combobox比较复杂,他似乎是一个复合控件,下拉区是toolstripDropDown内加入items的集合
当然中间需要宿主ToolStripControlHost,楼主不妨可以试试完全自己定义一个类似功能的控件,应该
可以做出像wpf里面那种比较炫的效果。
zhengzili813 2010-05-07
  • 打赏
  • 举报
回复
建立重写,学习下
捷哥1999 2010-05-07
  • 打赏
  • 举报
回复
codeproject上找找。
wangwenzhuang 2010-05-07
  • 打赏
  • 举报
回复
重写是可以的,但是没有重写过!
wuyq11 2010-05-07
  • 打赏
  • 举报
回复

自定义的颜色ComboBox
到codeproject里看看
sxmonsy 2010-05-07
  • 打赏
  • 举报
回复
3楼的是WEB用的。
加载更多回复(2)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧