如何隐藏TRadioGroup周围的边框

9

我有两个单选按钮在一个TRadioGroup中。它们工作的逻辑都没问题。但是TRadioGroup控件周围有一个边框,我以为可以使用border属性或类似的东西来删除它。但是该控件似乎没有任何类似于边框/框架的属性。我该如何设置控件不包括边框/框架?

3个回答

4
我不认为您可以隐藏标准单选组框的边框。看起来您可以创建一个自定义子类并覆盖绘图(如果正常绘制),但这种方法可能需要更多主题支持。总体而言,这个方案听起来很费力。
下一个最明显的方法是将单选组替换为像面板这样的容器中的多个单选按钮。这将起作用,并且代码简单,但可能会变得混乱。对于很少的收益,看起来是很繁琐的工作,我很懒得再寻找其他选择。
有一个可行的方法可以使用。如果您将单选组放在面板上而不是直接放在表单(或其他背景)上,则可以使面板与单选组相比较小。您希望面板与单选组的内部一样大,但不要像边框那样大。然后将单选组的顶部和左侧设置为负数,使边框落在父面板外部。这种方法不显示边框。

1
使用小尺寸面板的好建议。谢谢。同时,请确保面板的BevelOuter设置为bvNone。 - lkessler

4

TRadioGroup不支持您要查找的内容。请将两个TRadioButton组件放置在一个TPanel上。然后,您可以使其外观符合您的要求。


1
我本以为可能是这样,但仍然抱着RAD Studio的创建者实际上有大脑的希望 :) ... 必须有数百万用户想要一个单选按钮组,但不被迫使用框架。哦,等等...数百万...嗯...大多数人可能已经放弃了RAD Studio :) - inquam

1

我知道这不是最佳实践,但我遇到了类似的问题,而且无法重新设计所有内容。因此,我只是这样做来简单隐藏边框(到目前为止效果很好)。

HANDLE Region = CreateRectRgn(3, 3, RadioGroup->Width-3, RadioGroup->Height-3) ;

SetWindowRgn(RadioGroup->Handle, Region, true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接