C# - 不要把形式带到前面

时间:2016-06-18 09:19:55

标签: c# forms

我的应用使用计时器,在几秒钟后显示表单。 当我最小化我的应用程序以执行其他操作时,计时器仍然处于活动状态(我已经确定了)并且表单将所有窗口都放在前面,并专注于它(正常行为)。

我希望新的表单在我的主要应用程序之上打开,但不要在我的所有窗口之上打开。

在主窗体中,我将这样称为新表单:

MRIS.EVENT_BOX form1 = new MRIS.EVENT_BOX();
form1.Owner = this;
form1.ShowDialog();

我设法通过在EVENT_BOX中添加它来消除焦点问题:

protected override bool ShowWithoutActivation { get { return true; } }

我还检查新表单中TopMost是否设置为false。

但新形式仍然显示在所有其他形式之上(这次没有重点......)。

我检查了一些其他问题,但无法找到有用的东西。

有些人谈论可见形式吗?

如果你可以帮助我?

由于

1 个答案:

答案 0 :(得分:1)

如果您不想将其带到前面,则需要致电form1.Show();

form1.Show();
//form1.BringToFront() You may need to call this if you want to being it to front

form1.ShowDialog()将表单显示为dialog,这意味着它将显示在parent form之上。您可以查看有关此here

的更多详细信息