分组控件
我正在使用 C++ Builder 5。有没有一种方法可以对一组不同的控件进行分组,以便通过简单地调用,例如,myGroup.Enabled = false;
将设置所有控件组enabled
属性设置为 false?我无法使用 GroupBox,因为控件(标签、复选框等)位于不同的 TabPages
上。
我问的原因是我不必显式调用每个控件的 enabled
属性,并且可以通过一个简单的调用来完成此操作。
如果没有,我如何创建自定义 Control 类来执行此操作?
I'm using C++ Builder 5. Is there a way to group a disparate set of controls so that by simply calling, for instance, myGroup.Enabled = false;
will set all group of controls enabled
property to false? I can't use a GroupBox since the controls (labels, checkboxes, etc) are on different TabPages
.
The reason I ask is so I don't have to call each control's enabled
property explicitly and can do it with one simple call.
If not, how can I create a custom Control class to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于要分组的控件不在同一个容器中,那么我建议使用 TAction(查看 TActionList 组件)。所有 TControl 后代都有一个公共(有时甚至已发布)
Action
属性。您可以将同一个 TAction 对象同时分配给多个控件。启用/禁用 TAction(或更新其任何其他属性)将自动相应地更新所有关联的控件。Since the controls you want to group are not in the same container, then I suggest using a TAction (look at the TActionList component). All TControl descendants have a public (sometimes even published)
Action
property. You can have the same TAction object assigned to multiple controls at the same time. Enabling/disabling the TAction (or updating any of its other properties) will automatically update all associated controls accordingly.您可以使用 标签属性< /a> 控件并创建您自己的分组。
或者,如果您想一次性启用/禁用所有控件。
示例:
注意:以上代码已使用 C++Builder 2007 进行测试
You could use the Tag property of the controls and create your own grouping.
Alternatively, If you want to enable/disable all controls in one go.
Examples:
NOTE: The above code has been tested with C++Builder 2007