【问题标题】:How to set two radiobuttons in one group and two in another group?如何在一组中设置两个单选按钮,在另一组中设置两个?
【发布时间】:2010-11-14 02:54:12
【问题描述】:

我的表单上共有 4 个单选按钮,我想将前两个按钮设置在一组中,将后两个按钮设置在另一组中,以便我可以检查第一组中的一个和第二组中的一个。

现在,如果我选中第一组中的一个,第二组中的一个将变为未选中。

我一直想知道如何做到这一点,我相信现在是解决这个问题的时候了。 :)

【问题讨论】:

    标签: delphi vcl


    【解决方案1】:

    引用值得信赖的 Delphi 5 帮助:

    默认情况下,所有直接包含在同一个窗口控件容器中的单选按钮,例如TRadioGroupTPanel,都会被分组。例如,表单上的两个单选按钮只有在单独的容器(例如两个不同的组合框)中时才能同时选中。

    【讨论】:

    • 同意。单选按钮分组基于父/子关系。为了拥有多组按钮,您必须使用多个父控件。
    【解决方案2】:

    将两个按钮放在一个面板上,另外两个放在另一个面板上。这样,它们将被视为单独的分组。更改面板斜面以移除边缘,如果您愿意的话,四个按钮在用户看来不会像是分开的。

    【讨论】:

      【解决方案3】:

      RadioButton 没有 GroupIndex 属性,就像 SpeedButton 一样。

      如果有的话会容易得多,因为您可以使用数字来创建仅与 GroupIndex 中设置的相同数字的单选按钮交互。

      因此,您所能做的就是将它们放在一个分组控件中,例如面板。

      但您始终可以使用不同的新属性构建自己的 RadionButton 版本。 :)

      【讨论】:

        【解决方案4】:

        这就是我们使用 Groupbox 和 Radiogroups 的原因(可以在标准控件中找到)。我建议您创建 2 个 Groupbox 并在每个中放置 2 个单选按钮。然后您将能够检查 2 个单选按钮。

        您还可以为组框选择标题。这是组织申请表的好方法

        【讨论】:

          【解决方案5】:

          如果同组的单选按钮可以在行或列中,那就太好了,但是如果单选按钮必须以 X 样式(或更复杂的方式)显示怎么办:

           A B
           C D
          

          我放的那个 X 样式样本的限制:

          • A 和 D 有关系(A 和 D 不能同时勾选,勾选一个不勾选另一个)
          • C 和 B 有关系(C 和 B 不能同时勾选,勾选一个不勾选另一个)

          这是视觉上的要求,在 X 样式中,所以我不能放置任何包含该 RadioButton 的 GroupBox,因为 GroupBox 是矩形的,而不是对角线的。

          我不知道仅使用标准组件的任何解决方法,其中有一个技巧可以使面板在视觉上透明并且还可以点击,因此两个面板都是正方形,一个在另一个之上。

          但是如果单选按钮彼此相距很远,有很多复杂的组件、流程面板、备忘录等呢?

          唯一的选择是使用第三方组件(最后据我所知)或做很多艰苦的工作:

          1. 为每个 RadioButton 创建一个面板,其大小和位置与 RadioButton 完全相同;这使得单选按钮不会取消选中任何其他按钮,因此需要更多代码。
          2. 为每个 RadioButton 添加代码,以便在选中时取消选中与其相关的所有单选按钮(不能同时选中的单选按钮)。

          对于本来可以在 RadioGroupIndex 这样的简单属性上实现的东西来说工作量太大,如果分配的值是 0,那么就可以像现在一样工作,否则只取消选中同一组的那些……就像在主菜单上一样。

          【讨论】:

            猜你喜欢
            • 2010-11-17
            • 2013-05-09
            • 2017-07-19
            • 1970-01-01
            • 1970-01-01
            • 2014-04-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多