如何保持窗口始终在顶部

时间:2011-12-11 08:01:29

标签: c# window

即使有另一个应用程序的窗口激活了Topmost = true选项并试图留在我的窗口前,我如何保持窗口始终保持在最佳位置?

3 个答案:

答案 0 :(得分:1)

应该可以通过从OnFocusLost事件处理程序设置Focus on窗口来实现。

答案 1 :(得分:1)

您可以在BringWindowToTop上执行平台调用来实现此目的:

[DllImport("user32.dll", SetLastError=true)]
static extern bool BringWindowToTop(IntPtr hWnd);

[DllImport("user32.dll", SetLastError=true)]
static extern bool BringWindowToTop(HandleRef hWnd);

FocusLost事件触发时调用它。

答案 2 :(得分:1)

最简单的方法(假设你已经拥有最顶级的promery集)将调用

myform.BringToFront();

在FIXED但相对较小的时间间隔(见Timer类),通过所有时间形式必须保持在最佳状态。

如果调用此函数被连接到事件,告知您在顶部失去了特权,那么这可能会导致多个应用程序之间的资源错误。安全的价格是,当他被你的程序推翻时,其他一些程序可能会因为信息泄漏而作弊,但是如果你想一直保持在最高位置,唯一的解决办法就是杀死其他程序:D