2

众所周知,TPanel它是其他可视组件(等)的TLabel容器TEdit。但是,似乎我们只能将新组件(来自组件面板)放置到现有的 TPanel 上,然后 VCL 框架将自动将 TPanel 设为其父级)。

我想知道是否有办法将现有的可视组件(那些已经在我们的 VCL 表单上的组件)放置到 TPanel 上。我试过了

  • 将组件放置在现有的 TPanel 上(这不起作用,因为框架不会使 TPanel 成为其父级)

  • 手动编辑表单的 dfm 文件(TPanel 上的组件现在不可见 - 一个错误?)

  • 在代码中显式设置组件的 Parent 属性(Label1即使Panel1高度设置为 0 也是可见的)

    Label1->Parent = Panel1;
    

以上都不起作用,但这似乎是一个基本的事情,它必须是一种方法来做到这一点。

谢谢

4

1 回答 1

2

根据我对VCL的经验(我使用Delphi,但我认为这对C++有效),我知道在设计时更改Parent现有控件的 3 种方法:

  • 结构窗口拖放Control到所需的Parent 在此处输入图像描述

  • 选择Control,剪切它Ctrl + X,选择所需的Parent并粘贴Ctrl + V。这样,Control将粘贴为所需的子控件Parent

  • 手动编辑DFM 文件。这样做,您必须注意LeftTop属性,因为Control可以将其放置在新的外部Parent并且它可能看起来不可见。在这种情况下,我建议设置控件的LeftTop0确保Control将在其新的Parent

于 2017-08-19T13:17:11.987 回答