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

标签 forms delphi window

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

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/

相关文章:

linux - 我想通过 perl 从 linux 机器运行窗口 cmd 命令

javascript - jQuery 表单超时不提交 - e[h] 不是函数

delphi - Delphi 是否提供用于表单创建通知的事件处理程序?

css - 表单字段在 Mac 上呈现不同

delphi - 任何扫描代码并给出调用给定函数的函数列表的工具

delphi - TWebModule 中的 session 管理

delphi - 如何在 TCustomControl 组件上正确创建 TSplitter?

c# - HttpPostedFile 返回空值?

javascript - Svelte:<svelte:window bind:innerHeight/> 在调整窗口大小时无法使用 div 中的样式属性

c# - WPF:Initialized 和 Loaded 事件之间是什么?