如何防止其他应用程序窃取焦点?

时间:2010-01-18 14:02:09

标签: c# .net winforms windowstate

我有一个全屏窗口,其中Topmost属性设置为true。每当应用程序更改其WindowState属性时,即使它具有活动焦点,我的窗口也会自动最小化。例如,下面的代码举例说明了这个问题。窗口停用后3秒,它从最小化更改为正常,最小化其他全屏应用程序。

// Topmost = false
private void Form1_Deactivate(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(3000);
    this.WindowState = FormWindowState.Normal;
}

在这种情况下,有没有办法保留全屏窗口的WindowState属性?我希望用户选择最小化全屏应用,所以我想阻止其他程序窃取焦点。

3 个答案:

答案 0 :(得分:2)

您可能需要调查"Kiosk Mode"

答案 1 :(得分:0)

也许这就是你想要的:Windows Form in Full Screen "Kiosk Mode"

否则我将是Henk的第二次推荐。

答案 2 :(得分:0)

如果这是一个自助服务终端应用程序,你是计算机上运行的唯一程序,那么很好。否则这是一个非常糟糕的主意,这就是为什么没有记录的方法来做到这一点。 正如Raymund Chen所说,这个问题应该伴随着思想实验“如果有两个程序这样做会怎么样?”:

http://blogs.msdn.com/oldnewthing/archive/2005/06/07/426294.aspx

相关问题