5

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

4

3 回答 3

5

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

form2.TopMost = true;

以主要形式使用此代码:

form2.Owner = this;

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

于 2013-04-28T15:10:54.240 回答
3

您可以尝试在子窗体可见期间清除父窗体的 TopMost 属性。

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

于 2009-10-26T21:18:43.873 回答
0

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

一切都很好。Form2 活动且可点击。自从调用 ShowDialog 以来,Form1 没有

第二个变体工作正常。Form2 在屏幕中央打开。

可能是我误解了什么?

于 2009-10-26T21:25:04.767 回答