我试图将我的辅助表单带到前台,但是当我这样做时
MyForm.Show; // It may be hidden, therefore show it first
SetForegroundWindow(MyForm.Handle);
我的主表单也会出现。我可以防止这种情况的唯一方法是执行 MainForm.Hide;
但我必须避免这种情况。
这个想法是让我的辅助表单出现在另一个应用程序的顶部,而我的主表单也不必这样做。
最佳答案
如果您考虑为此功能制作另一个应用程序,那么您还可以考虑以下折衷方案:将 MainForm 最小化到任务栏(而不是隐藏它),以防止在激活另一个表单时弹出它。
如果是这样,请尝试 this answer 。它确实为辅助表单添加了一个额外的图标到您的任务栏,但我想这不会有问题,因为不同的应用程序也可以。但是,如果 MainForm 没有最小化而是被其他窗口混淆了,激活辅助窗体也会弹出 MainForm,就像您现在遇到的那样。
为了这个答案的完整性,但绝不是建议:this answer描述了一种(有点实验性的)构造来制作完全独立的窗口。我测试该解决方案的时间很短,它似乎有效,但请做好准备,不要再依赖 VCL 的完整/默认功能。
关于forms - 显示另一个表单时防止出现主表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6239723/