【问题标题】:Scrolling in C++ Builder RadioGroup在 C++ Builder RadioGroup 中滚动
【发布时间】:2015-02-09 19:06:40
【问题描述】:

我有带有许多按钮的 RadioGroup。现在,当我添加一个项目时,它们变得越来越小。如何使它们可滚动?

【问题讨论】:

    标签: c++ scrollbar c++builder vcl radio-group


    【解决方案1】:

    TRadioGroup 本身不支持滚动。但是,您可以执行以下操作:

    1. 在您的 UI 上放置 TGroupBox

    2. TGroupBox 上放置一个TScrollBox,将其Align 属性设置为alClient,并将其BorderStyle 属性设置为bsNone

    3. TRadioGroup 放置在TScrollBox 上,清除其Caption 属性,并将其Left 属性设置为-2 并将其Top 属性设置为-15(或任何@ 987654337@ 设置为加上几个额外的像素)。之所以需要此定位,是因为您无法关闭TRadioGroup 的边框或为其Caption 保留的空间。

    4. 调整TScrollBox.HorzScrollBar.RangeTScrollBox.VertScrollBar.Range 属性,使它们不会滚动到足以看到TRadioGroup 的右边框和下边框。

    这样,按钮看起来就好像它们是 TGroupBox 的一部分,但添加了滚动条。

    【讨论】:

      【解决方案2】:
      1. RadioGroup->Items->Count
      2. TRadioGroup 组件没有嵌入式滚动条,但您可以将单选组放在TScrollBox 上以获得类似的效果。

        您可以使用Buttons 集合来引用每个按钮,例如

        RadioGroup->Buttons[0]->Height = 5;
        RadioGroup->Buttons[1]->Top = RadioGroup->Buttons[0]->Top + 10;
        

        无论如何TComboBox 也是一个不错的选择。

      【讨论】:

      • 感谢您的回答,但我不明白什么是按钮,我创建了 RadioGroup1 并使用 add() 方法添加了项目,但是当我使用 RadioGroup1->Buttons[0]->Height = 5个;我收到错误:高度不是 TString 的成员
      • Buttons 提供对由控件创建的各个 TRadioButton 对象的直接访问。您可以访问单个TRadioButton 对象,但不能添加或删除TRadioButton 对象(要修改按钮列表,请更改Items 属性)。
      猜你喜欢
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      相关资源
      最近更新 更多