我的表单上共有4个单选按钮,我想在一组中设置前两个按钮,在另一组中设置第二个按钮,这样我就可以从第一组中检查一个,从第二组中检查一个。
现在,如果我从第一组中选择一个,则第二组中的一个将被取消选中。
我一直想知道如何做到这一点,我相信现在是解决这个问题的时候了。 :)
答案 0 :(得分:13)
引用可靠的Delphi 5帮助:
默认情况下,直接包含在同一窗口控件容器中的所有单选按钮(例如
TRadioGroup
或TPanel
)都会被分组。例如,表单上的两个单选按钮只有在包含在单独的容器中时才能同时检查,例如两个不同的组框。
答案 1 :(得分:2)
将两个按钮放在面板上,另外两个放在另一个面板上。这样,他们将被视为单独的分组。更改面板斜面以移除边缘,如果这是您想要的,则四个按钮不会向用户显示它们是否分开。
答案 2 :(得分:0)
RadioButton没有GroupIndex属性,就像SpeedButton那样。
如果有的话会更容易,因为你可以使用数字创建一组RadioButtons,它们只与GroupIndex中设置的相同数字进行交互。
所以你所能做的就是在分组控件中输出它们,比如Panel。
但是你总是可以使用不同的新属性构建自己的RadionButton版本。 :)
答案 3 :(得分:0)
这就是我们使用Groupbox和Radiogroups的原因(可以在标准控件中找到)。我建议你创建2个Groupbox并在每个组中放置2个radiobuttons。然后你就可以检查2个radiobuttons。
您还可以为组框选择标题。这是组织申请表格的一种非常好的方式
答案 4 :(得分:0)
当相同组的单选按钮可以在行或列中时,这很好,但是如果单选按钮必须以X样式(或以更复杂的方式)显示,那该怎么办:
A B
C D
我放置的X样式示例的限制:
在视觉上需要它,在X风格中,所以我不能放任何包含RadioButton的GroupBox,因为GroupBox是矩形而不是对角线。
我不知道只使用标准组件的任何修复,其中有一个黑客可以使面板在视觉上透明,也可以点击通过,所以两个面板都是正方形,一个在另一个面板上。
但是,如果将单选按钮放在另一个很远的地方,有很多复杂的组件,流程面板,备忘录等等呢?
唯一的选择是使用第三方组件(最后根据我所知)或做很多努力工作:
对于像RadioGroupIndex这样的简单属性可以实现的东西太多了,如果赋值为0,那么就像现在一样工作,否则只取消选中同一组的那些...就像在主菜单上一样。