将现有VCL控件放在TPanel组件上

问题描述 投票:2回答:1

众所周知,TPanel是其他视觉成分(TLabelTEdit等)的容器。但是,似乎我们只能将新组件(从组件面板)放到现有的TPanel上,然后VCL框架会自动将TPanel作为其父级。

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

  • 将组件放置在现有TPanel上(这不起作用,因为框架不会使TPanel成为其父级)
  • 手动编辑表单的dfm文件(TPanel上的组件现在是不可见的 - 一个错误?)
  • 在代码中显式设置组件的Parent属性(即使Label1 height设置为0,Panel1也可见) Label1->Parent = Panel1;

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

谢谢

c++ controls vcl tpanel
1个回答
1
投票

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

  • 从结构窗口中将Control拖放到所需的Parententer image description here
  • 选择Control,将其剪切为Ctrl + X,选择所需的Parent并粘贴Ctrl + V.这样,Control将被粘贴为所需Parent的子控件
  • 手动编辑DFM文件。这样做,你必须注意LeftTop属性,因为Control可能被放置在新的Parent之外,它似乎看不见。在这种情况下,我建议将控件的LeftTop设置为0,以确保Control在其新的Parent中可见
© www.soinside.com 2019 - 2024. All rights reserved.