自定义ComboBox的Items类型

QuickPai 2013-10-14 03:35:44
请教各位大侠,如何实现一个自定义的Combobox,主要实现的功能是我可以通过items.add,items.remove一些控件到Combobox,比如添加,删除一些button,textbox,lable等,也就是说Combobox可以添加删除子控件作为它的items。
...全文
490 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 8 楼 zxz414644665 的回复:
zx5234104 ,你好,谢谢你的回复。 想请问一下ContentControl指的是? 另外假如你这种思路可行的话,如何实现items中的控件事件?
你直接用combox.Items.Add(myLabel);就可以了 ToString只是在界面上显示的东西 在代码中你仍然可以强制转换回来了,只不过是object类型,不是泛型
zx5234104 2013-10-14
  • 打赏
  • 举报
回复
引用 10 楼 zxz414644665 的回复:
不好意思,是winform的
额,winform的话没这么用过,你看能不能这样: 1. 新加个ComboboxItem对象,override一下toString方法,item的控件对象什么的都放里面 2. 重写combobox的OnDrawItem和OnMeasureItem方法,从上面的对象去读item的样式然后画上去 3. 通过selectedchange事件,去触发控件的相应事件。。比如调用button的PerformClick方法触发click事件之类的。。。。 没具体实现过。。不知道可行不。。。。
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
你好,trustin ,谢谢你的回复。
请问,怎么用panel替代,怎么重写自定义?自定义重写哪个方法能够让panel替代下拉?你写过类似的例子吗?能贴代码吗?
trustin 2013-10-14
  • 打赏
  • 举报
回复
自定义控件吧 下拉用panel替代
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
不好意思,是winform的
zx5234104 2013-10-14
  • 打赏
  • 举报
回复
引用 8 楼 zxz414644665 的回复:
zx5234104 ,你好,谢谢你的回复。 想请问一下ContentControl指的是? 另外假如你这种思路可行的话,如何实现items中的控件事件?
额。。Winform还是WPF?
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
zx5234104 ,你好,谢谢你的回复。
想请问一下ContentControl指的是?
另外假如你这种思路可行的话,如何实现items中的控件事件?
zx5234104 2013-10-14
  • 打赏
  • 举报
回复
用ContentControl作为每个Item的承载控件; add操作: 不直接把控件加入combobox,而是先把控件装入ContentControl,然后再把ContentControl加进去。 remove操作就直接删除对应ContentControl.... 俺的大致思路LZ看可行不?
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
这样只是把文本等一些信息给加进去了,我想要的是items就是控件本身,如果我想加进去的是文本,背景色,前景色,click事件,怎么办?
  • 打赏
  • 举报
回复
继承要显示的控件,重写ToString()方法以在Combox中显示 比如 class MyLable : Label { public override string ToString() { return base.Text; } }
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
类似与实现下面截图的效果:
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
类似与实现下面截图的效果:
QuickPai 2013-10-14
  • 打赏
  • 举报
回复
我的意思是Items显示的是控件 而不是tostring得到的结果
shawn_yang 2013-10-14
  • 打赏
  • 举报
回复
你何必这么做,你直接用string作为值,然后根据值去new 控件呗

110,536

社区成员

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

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

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