2009-08-28 119 views
0

我使用主窗体和子窗体。窗体主窗体+子窗体堆栈问题

如果我打开第二个孩子形式

TMYForm.Create(无);

它不堆叠在第一个子窗体上。

第二个和第X个子窗体是否有任何方式出现在与第一个子窗体完全相同的位置?

或者我需要销毁旧的子窗体,同时创建新的窗体(因为堆叠是自动完成的)?

+0

附:我试图在使用nil之前破坏子表单,但仍将它堆叠在不同的位置,尽管第一个子表单不再可见。 – Tom 2009-08-28 17:04:26

+0

这是一种模态还是非模态形式?对于模态,您需要确保z顺序也是正确的。 – 2009-08-28 17:15:40

回答

4

这是预期的行为。如果没有另行指定,表格将从之前打开的位置向右和向下打开。
如果你想控制你的表格的位置,其Position属性更改为poDesigned,但你要设置其TopLeft属性,以确保这将是可​​见的。
或者您可以使用一些预设:poDesktopCenter, poMainFormCenter, poOwnerFormCenterpoScreenCenter

0

尝试把此:

TMYForm.Position:= poMainFormCenter;

TMYForm.Position:= poOwnerFormCenter;

Before TMYForm.Create(nil);

-S

0

如果您有子窗体参考,使用Form2.BoundsRect:= Form1.BoundsRect