如何保持窗户总是在上面
本文关键字:在上面 窗户 何保持 | 更新日期: 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