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