我正在尝试将我的子表单放在我父表单的顶部。 在屏幕之间切换时,当加载子表单时,它会失去焦点并被困在父表单后面。
我使用的代码是:
childForm.ShowDialog(this.ParentForm);
似乎在另一个屏幕上的应用程序之间切换时,子表单会失去对父表单的关注。
修改的
使用childForm.ShowDialog(this)
后,它仍然隐藏在父表单后面。
答案 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