在Windows 8上将.NET winform带到前面(焦点)

时间:2015-02-10 18:35:36

标签: c# winforms winapi c#-4.0

我有一个.NET 4.5 C#winforms应用程序,当检测到条形码扫描时,它应该到达前台(在所有其他应用程序/窗口之前)。我正在使用此代码来完成它:

if (this.WindowState == FormWindowState.Minimized)
{
    this.WindowState = FormWindowState.Normal;
}
this.Activate();

这在Windows 7上运行完美,但在Windows 8上不起作用。如果我的应用程序仅被最小化(并且是最近的应用程序有焦点),它确实有效,使用此行:

this.WindowState = FormWindowState.Normal;

但是,当条形码扫描发生时,如果任何其他窗口/应用程序在我的应用程序前面,this.Activate()显然无法在Windows 8上运行。

解决方案是什么?

1 个答案:

答案 0 :(得分:1)

您需要设置表单的TopMost属性。

this.TopMost = true;