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

时间:2017-08-16 08:22:01

标签: c++ controls vcl tpanel

众所周知,TPanel是其他可视组件的容器(TLabelTEdit等)。 但是,似乎我们只能放置新组件(来自 组件调色板)到现有的TPanel上,然后VCL框架会自动使TPanel成为他们的父级。

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

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

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

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

    Label1->Parent = Panel1;
    

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

  • Parent结构窗口拖放到所需的Control enter image description here

  • 选择Parent,剪切 Ctrl + X ,选择所需的Control并粘贴 Ctrl + V 。通过这种方式,Parent将被粘贴为所需Left

  • 的子控件
  • 手动编辑 DFM文件。这样做,您必须关注TopControl属性,因为Parent可以放在新Left之外,看起来似乎不可见。在这种情况下,我建议将控件的Top0设置为Control,以确保Parent在新/(?<name>.*?) \<(?<email>.*?)\>/g 内可见