繁体   English   中英

C# - 如何处理2个“TopMost”表单?

[英]C# - How to deal with 2 “TopMost” Forms?

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

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

form2.TopMost = true;

在主窗体中使用此代码:

form2.Owner = this;

如果使用Form.TopMost属性,则表单将与所有其他非最顶层表单重叠,但也会与其他应用程序重叠。 而不是这样,将Form.Owner属性设置为父窗体 - 应该在窗体下面的窗体(例如主窗体)。 G00d运气:)

您可以尝试在子窗体可见的持续时间内清除父窗体的TopMost属性。

这将解决哪种形式应该是最重要的问题,因为只有一种形式。

嗯。 我创建了To表单。 然后我在两者上设置TopMost = true。 我首先添加按钮并编写new Form2().ShowDialog();

一切都很好。 Form2处于活动状态且可单击。 Form1不是因为调用了ShowDialog

第二种变体很好用。 Form2在屏幕中央打开。

可能是我被误解了什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM