窗口闪烁失去焦点?

我一直在研究基于C#的窗体应用程序,我需要一些帮助。 我正在尝试重新创build当窗体失去焦点到父窗体时,大多数Windows应用程序所具有的窗口闪烁。 我可以解释这个最好的方法是打开计算器打开帮助窗口,并尝试点击计算器,帮助窗口,然后不落后计算器闪烁失去并获得周围的阴影。

当父母被点击时,我已经设法重新关注子窗口,但是由于父窗口暂时被带到子窗口的前面,这产生了奇怪的闪烁效果。 我只是猜测,但是我正在寻找的效果似乎是计算器从来没有被带到帮助窗口的前面,然后帮助窗口被简单地激活和停用几次。

我试图做一些search,我已经看到了一些与此有关的话题,但没有一个解决scheme相当匹配。 我对制作窗体应用程序相当陌生,所以还是有一些我不明白的东西,所以如果我一开始不明白什么,请耐心等待。

先谢谢你

计算器例子的详细说明:

1)从Windows附件中打开计算器2)在工具栏中转到帮助选项卡,打开关于计算器选项3)点击计算器窗口4)关于计算器窗口将闪烁,而永远不会落后于计算器

我对此做出的唯一进展是

private void MainForm_Activated(object sender, EventArgs e) { if (Open == true) { //blink active window _addForm.Activate(); //makes window active } } 

打开的variables是我用来跟踪如果打开窗体,并且当我显示另一个窗体时被使用。

Solutions Collecting From Web of "窗口闪烁失去焦点?"

在你的例子中,关于窗口被称为模态窗口。 模态窗口阻止用户与父窗口交互,直到关闭。 使用Form.ShowDialog而不是Form.Show将窗体作为模式窗口呈现给用户。

使孩子形式modal 。 这意味着在将焦点转移回父母之前,必须正确关闭小孩。