当前位置:编程学习 > C#/ASP.NET >>

自己写了个combobox多项匹配的控件,现在遇到一个小问题了,请高手指教~~

...如题
把自己写的控件放在一个容器时,如何才能使combobox的下拉框超出该容器啊!
测试通过后散尽所有分!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- up ~~~~~~~~~~~~~` --------------------编程问答-------------------- 假设你是放在了一个Panel里面,

点击下拉条的时候,

最大只能显示在Panel的宽度范围内? --------------------编程问答--------------------
引用 2 楼 jie8991 的回复:
假设你是放在了一个Panel里面, 

点击下拉条的时候, 

最大只能显示在Panel的宽度范围内?


是的,.net自带的combobox控件,如果拉下框不会受容器的限制,类似悬浮在窗体上~~ --------------------编程问答-------------------- up  ~~~~~````    --------------------编程问答-------------------- 放Panel里面和直接让UserControl上都没有遇到过这问题,可以不受容器的限制的 --------------------编程问答--------------------
引用 5 楼 yanlongwuhui 的回复:
放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拓宽,来满足自定义控件的正常显示

--------------------编程问答--------------------
引用 10 楼 jie8991 的回复:
我觉得如果是外面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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,