如何使一种形式保持在另一种形式之上?

时间:2009-07-13 18:26:00

标签: c# winforms

我找到了Form.TopMost属性,但它将表单置于所有内容之上,包括不属于我的应用程序的内容。我怀疑我在这里遗漏了一些明显的东西。 (Form是非模态对话框的正确基类吗?)

4 个答案:

答案 0 :(得分:30)

使用对话框表单的Form.Owner属性并将其设置为主窗体。

在这里阅读更多内容 http://msdn.microsoft.com/en-us/library/system.windows.forms.form.owner.aspx

所有者表格永远不会显示在所有者表格后面。

答案 1 :(得分:8)

很简单;您只需在调用Show()方法

时通过所有者即可
YourForm.Show(parentForm);

答案 2 :(得分:1)

您可以通过将父Form作为参数提供给子Form上调用的ShowDialog()方法来指定窗口之间的父子关系。然后,子窗口将保持在父窗口的顶部,并最小化并与父级一起恢复。

答案 3 :(得分:0)

如果我理解你正确地从你的应用程序打开一个表单,并且你希望你的新表单在旧表单之上。

为此,您可以使用ShowDialog()StartPosition

SomeForm MyNewForm = new SomeForm();
MyNewForm.ShowDialog();

这将使该表单保留在原始表单之上,您也可以使用

MyNewForm .StartPosition = FormStartPosition.CenterParent;

控制新表单在屏幕上显示的位置。