在显示另一个表单时防止出现主表单

时间:2011-06-04 22:15:41

标签: forms delphi window

我正试图将我的辅助表格带到前台,但是当我这样做时

MyForm.Show; // It may be hidden, therefore show it first
SetForegroundWindow(MyForm.Handle);

我的主表格也出现了。我可以阻止的唯一方法是MainForm.Hide;,但我必须避免这种情况。

我的想法是让我的辅助表格出现在另一个应用程序之上,而我的主表格也不必这样做。

2 个答案:

答案 0 :(得分:2)

如果您考虑为此功能制作另一个应用程序,那么您还可以考虑以下折衷:将MainForm最小化到任务栏(而不是隐藏它)以防止它在激活另一个表单时弹出。

如果是,请尝试this answer。它确实为你的任务栏添加了一个额外的图标用于辅助表单,但我想这不会有问题,因为不同的应用程序也会。但是,如果MainForm没有被最小化但被其他窗口混淆,激活辅助表单也会弹出MainForm,就像你现在经历的一样。

为了这个答案的完整性,但不是以任何方式作为建议:this answer描述了一个(有点实验性的)构造来制作完全独立的窗口。我测试该解决方案的时间很短,它似乎可以工作,但是准备不再计算VCL的完整/默认功能。

答案 1 :(得分:0)

尝试将表单状态设置为fsAlwaysOnTop