如何保持窗户总是在上面

本文关键字:在上面 窗户 何保持 | 更新日期: 2023-09-27 18:17:33

我如何保持我的窗口始终保持在顶部,即使有一个窗口的另一个应用程序与Topmost = true选项激活,并试图留在我的窗口前面?

如何保持窗户总是在上面

您可以对BringWindowToTop进行平台调用来实现这一点:

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

并在FocusLost事件触发时调用它

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

最简单的方法(假设您已经拥有最顶层的内存集)是调用

myform.BringToFront();

在固定但相对较小的时间间隔(参见Timer类),通过所有的时间形式必须保持在顶部。

如果调用this连接到通知您失去顶层特权的事件,这可能会导致多个应用程序之间的资源争夺。安全的代价是,当其他程序被您的程序取代时,其他程序可能会通过侦听信息来作弊,但是如果您想一直保持领先地位,那么唯一的解决方案就是杀死其他程序:D