VCL控件的 BringToFront 问题?

w88529593 2008-12-30 03:11:44
今天做了一个测试,就是在一个Form上面放一个GroupBox,然后再把一个ComboBox控件放置到容器GroupBox,这个GroupBox是ComboBox的父容器,然后把GroupBox的高度设置为40,然后再把ComboBox的style设置为csSimple,然后在ComboBox的OnEnter事件中写上如下代码:

ComboBox1->BringToFront();
ComboBox1->Height= 400;

则ComboBox的大小受限于GroupBox的高度,也就是说ComboBox超出它的父容器GroupBox的那部分高度,居然不能显示出来,

但是如果我把ComboBox先放在Form上,然后拖到GroupBox上面,也就是不把ComboBox的父容器设为GroupBox的话,那么以上的代码,可以把ComboBox的高度显示为400

不知各位高手平时如何解决此类问题?
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TripH0101 2008-12-30
  • 打赏
  • 举报
回复
omboBox的高度这样能改变吗?置疑!
Waiting4you 2008-12-30
  • 打赏
  • 举报
回复
父窗体本来就有责任剪切子窗体超出的那一部分的,你要什么样的效果?
另外:ComboBox的高度没这么容易改变吧?
yumikoo 2008-12-30
  • 打赏
  • 举报
回复
这样做有什么意义?
再怎么BringToFront也不可能覆盖掉父控件的。
你后者的操作,已经把combobox的父类作为form了,也就是说和groupbox平级,平级时可以BringToFront()
建议方法:用label和combobox组合,父控件都为form或者某个panel
w88529593 2008-12-30
  • 打赏
  • 举报
回复
我是把ComboBox的style改为csSimple的,然后可以修改它的高度的
因为GroupBox的高度只能设置为40这么高,然后如果焦点置于ComboBox中后,就让他的高度变高以至于可以在ComboBox中的下面一部分显示一些备选的字符串项目,这样可以直接通过方向键来选择下拉列表框中的字符串,等待ComboBox失去焦点时再把它的高度设置为原来的默认高度21,不知这次在下有没有表达清楚,

用PANEL放着也会出现这个父容器控件自动截取超出父容器的那部分控件显示的。
samchoy 2008-12-30
  • 打赏
  • 举报
回复
GroupBox中先放个ScrollBox,然后把ComboBox放在ScrollBox上
jaffy 2008-12-30
  • 打赏
  • 举报
回复
我也置疑,用PANEL放着多好啊

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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