c#设置焦点在多个子表单上

时间:2017-11-02 15:37:46

标签: c# forms

我有一个主窗体,然后打开一个childdialog(nr 1),然后打开另一个childdialog(nr 2)。

当我从另一个应用程序打开该主窗体时,焦点设置在最后一个子窗口(nr 2),当我按下回车时,焦点设置在主窗体上,我希望焦点继续在子窗口nr 1

要打开主窗体我使用Activate();

然后在OwnedForms中我有一系列的孩子。

Activate();

if(OwnedForms.Any())
{
   OwnedForms.Last().Focus();
}

当我选择关闭具有焦点的表单时,焦点将转到主表单而不是OwnedForms数组中的下一个子表单(last -1)。

尝试带头和发送回来但没有任何成功。

1 个答案:

答案 0 :(得分:0)

确保已设置表单的父级。

OwnedForms.Last().Parent =  this;

此外,您可能希望在表单上查看.Show()vs .ShowDialog()。

如果您还没有这样做,似乎您可能更喜欢.ShowDialog()。