自己写了个combobox多项匹配的控件,现在遇到一个小问题了,请高手指教~~
...如题把自己写的控件放在一个容器时,如何才能使combobox的下拉框超出该容器啊!
测试通过后散尽所有分!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- up ~~~~~~~~~~~~~` --------------------编程问答-------------------- 假设你是放在了一个Panel里面,
点击下拉条的时候,
最大只能显示在Panel的宽度范围内? --------------------编程问答--------------------
是的,.net自带的combobox控件,如果拉下框不会受容器的限制,类似悬浮在窗体上~~ --------------------编程问答-------------------- up ~~~~~```` --------------------编程问答-------------------- 放Panel里面和直接让UserControl上都没有遇到过这问题,可以不受容器的限制的 --------------------编程问答--------------------
楼上的,没看明白你说的是什么意思?
我现在是用combobox+listview写的一个新的控件(命名coblist),listview是作为combobox的下拉框的,当把coblist放在一个panel上时,如果下拉菜单过长的话,会被panel覆盖掉 --------------------编程问答-------------------- 一定要用listview?我记得combobox利用的是一个类似popupWindow的东西。
用reflector看看System.Windows.Forms.dll中的System.Windows.Forms.DropDownList(忘了是不是这个类名)的代码。如果看得到,肯定很复杂,你得有足够的耐心抄代码(还不一定可行)。如果没有,那只能说明这是由CLR处理的,那就不好办了。
我暂时无法自己研究,抱歉。 --------------------编程问答-------------------- up ~~~~~```` --------------------编程问答-------------------- 个人想法:是不是可以遍历一些界面所有控件,然后找到该listview,将其提到最上面~~具体如何实施,请高手帮忙 --------------------编程问答-------------------- 我觉得如果是外面Panel限制了自定义控件的显示,
那Panel里面你如何调整都可能达不到你想要的效果.
不知道是否可以把Panel拓宽呢?
也就是说,当点下拉条的时候,
判断一下,如果能显示下,就正常显示在Panel里
显示不下的时候,将Panel拓宽,来满足自定义控件的正常显示
--------------------编程问答--------------------
这种方法我也试过了,我把panel的autosize设置为true了,但是如果界面中有两个panel,或者两个group的话,界面效果就很难看了~~ --------------------编程问答-------------------- 做成动态的就是有个这个问题,
会影响整个GUI的布局...
那就这样,
下拉列表里的数据是FormLoad的时候就加载好的吧.
你读取数据的时候截取一下,
截取的高度以Panel的宽度为主.
也就是说,下拉列表里可能有20个选项,
而实际只显示16个,
不知道这样做跟设计相违背不? --------------------编程问答-------------------- 哈哈~~这样好象也不行,如果我的下拉列表就在panel的最底端,那不就一个都显示不出来拉! --------------------编程问答-------------------- !!!ding~~~~~~ --------------------编程问答-------------------- UP --------------------编程问答-------------------- 坚持~~~~~~~~~~~~~ --------------------编程问答-------------------- 2003的时候写过不大记得了。不过最近见过一个更牛的,不用Panel,用Form,
直接 frmSelect.Top=True
frmSelect.ShowDailog()
虽然有点过分,不过希望对你有用。。。。。。。
补充:.NET技术 , VB.NET