我有一个设置为TopMost的父窗体,然后我有另一个窗体,当单击一个按钮时会打开。此子表单也设置为TopMost。我遇到的第一个问题是,当我打开子表单时,应用程序基本上会冻结,因为您无法访问任何内容。我决定不使用ShowDialog()打开子表单,而是使用Show(this)。这确实解决了最初的问题,但现在我有了一个新问题。 childforms start postition设置为CenterParent,当我使用Show(this)时,它不起作用。有什么方法可以让子窗体打开,同时将它和父窗体设置为最顶层同时将子窗体的起始位置设置为CenterParent?谢谢。
答案 0 :(得分:3)
您可以尝试在子表单可见的持续时间内清除父表单的TopMost属性。
这将解决哪种形式应该是最重要的问题,因为只有一种形式。
答案 1 :(得分:2)
我找到了一些与你分享有用的东西,伙计们。而是遵循代码
form2.TopMost = true;
以主要形式使用此代码:
form2.Owner = this;
如果使用Form.TopMost属性,表单将与所有其他非最顶层表单重叠,但也会与其他应用程序重叠。而不是这样,将Form.Owner属性设置为父窗体 - 应该在窗体下的窗体(例如主窗体)。 幸运的是:)
答案 2 :(得分:0)
嗯。我创建了To表单。然后我在两者上设置TopMost = true。我首先添加按钮并写入
new Form2().ShowDialog();
一切都很好。 Form2处于活动状态且可单击。 Form1不是因为ShowDialog被称为
第二种变体很好用。 Form2在屏幕中央打开。
可能是我误解了什么?