c#ChildForm.ShowDialog(ParentForm)无法正常工作

时间:2014-01-02 13:46:58

标签: c# .net winforms

我正在尝试将我的子表单放在我父表单的顶部。 在屏幕之间切换时,当加载子表单时,它会失去焦点并被困在父表单后面。

我使用的代码是:

childForm.ShowDialog(this.ParentForm);

似乎在另一个屏幕上的应用程序之间切换时,子表单会失去对父表单的关注。

修改的 使用childForm.ShowDialog(this)后,它仍然隐藏在父表单后面。

3 个答案:

答案 0 :(得分:3)

this.ParentForm似乎是null,这意味着您的代码是:

childForm.ShowDialog(null);

这解释了这种行为。您的子表单正在创建时没有所有者窗口。如果没有所有者窗口,childForm就没有理由出现在主窗体的顶部,正如您所期望的那样。

我怀疑您希望this成为您窗口的所有者,在这种情况下您应该将代码更改为:

childForm.ShowDialog(this);

或如果this是活动表格,则只需编写:

即可
childForm.ShowDialog();

答案 1 :(得分:0)

如果您想设置表单的所有者,那么您可以将其作为 -

childForm.ShowDialog(this);

答案 2 :(得分:0)

而不是说

childForm.ShowDialog(this.ParentForm);

只是说

childForm.Show();

如果要设置childform的所有者,请在设计中设置表单的owner属性。请参阅此处查看Form.Owner