我有主窗体的页面控件和子窗体的页面控件,I 使用停靠功能将子表单放在主表单中。
我没有使用MDI风格
现在两个表单都有页面控件中的选项卡,我需要合并子表单 选项卡进入主表单页面控件,最好的方法是什么?
答案 0 :(得分:4)
处理页面控件上的多个选项卡的最简单和最好的方法通常是使用Frames。获取每个选项卡的内容,并将它们分解为每个选项卡的单独框架。将任何共享组件,状态和代码移动到数据模块。然后将这些框架放在页面控件的标签页上。
答案 1 :(得分:2)
这是一种相当简单的方法,可能适合您的需要,也可能不适合您。
对于每个子标签页,您需要合并:
在主窗体页面中创建一个标签 对应于孩子的控制 标签
迭代中的控件 子选项卡并更改父级 属性到标签页你刚才 创建
您不需要处理作为其他控件的子控件的控件。例如如果您的子选项卡中有一个组合框,则更改它的父组件会将及其中的所有控件带到新父组件。
如果你需要能够在任何时候“取消合并”你的标签,那么你需要设计一些机制来跟踪控件的来源,这样你就可以将原来的父恢复为/需要时。
为了让事情变得更容易,您可以在子标签中放置 TPanel ,并将对齐属性设置为 alClient 。将所有控件放在该面板上的选项卡中,然后当您需要合并/取消合并时,只需设置面板控件的父。
答案 2 :(得分:0)
我刚试过
procedure TForm1.Button1Click(Sender: TObject);
begin
while Form2.PageControl1.PageCount > 0 do
Form2.PageControl1.Pages[0].PageControl := PageControl1;
end;
它工作正常。我错过了一些明显的东西,或者为什么每个人都提供如此复杂的解决方案: - )