C# - 如何处理 2 "TopMost"表单?

标签 c# winforms parent-child topmost

我有一个设置为 TopMost 的父表单,然后我有另一个在单击按钮时打开的表单。此子窗体也设置为 TopMost。我遇到的第一个问题是,当我打开子窗体时,应用程序基本上会卡住,因为您无法访问任何内容。我决定不使用 ShowDialog() 打开子窗体,而是使用 Show(this)。这确实解决了最初的问题,但现在我有了一个新问题。子窗体的起始位置设置为 CenterParent,当我使用 Show(this) 时,它不起作用。有什么方法可以打开子窗体,同时将子窗体和父窗体都设置为最顶层,同时将子窗体的起始位置设置为 CenterParent?谢谢。

最佳答案

伙计们,我发现了一些有用的东西要与你们分享。而是遵循代码

form2.TopMost = true;

在主窗体中使用此代码:

form2.Owner = this;

如果您使用 Form.TopMost 属性,该表单将与所有其他非最顶层表单重叠,但也包括来自其他应用程序的表单。取而代之的是,将 Form.Owner 属性设置为父表单——应该在表单下的那个(例如主表单)。 好运:)

关于C# - 如何处理 2 "TopMost"表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627387/

相关文章:

c# - .NET 语言中的 GINA 替代品?

c# - 聚合源 : How to access content:encoded?

c# - 意外的 token 非法 - 正则表达式 - MVC 3 JS

.NET:Graphics.DrawImageUnscaled 有什么作用?

c# - 禁用 Topshelf 控制台输出

c# - 控件停靠在 Visual C# 中无法正常工作

c# - 从 WPF WindowsFormsHost 设置 "AcceptButton"

c# - Entity Framework - 填充子对象,过滤子对象

c - 当 parent 收到杀死子进程的信号时,如何向收割者函数中加入额外的参数 (c)?

flutter - Bloc 流未正确更新