我們已經實施了一些自定義的工具提示繪圖代碼,在計時器上的Tick
事件觸發。每當這個事件觸發時,我們檢查,以確保我們的控制是可見的(this.Visible
),是前臺窗口(GetForegroundWindow()
)。如何防止我的自定義工具提示代碼被繪製,當我的窗口部分被始終在頂部的窗口遮擋?
我們所遇到的問題涉及「總在最前面」窗口類似任務管理器或Process Explorer(當「總在最前面」選項啓用)。由於這些窗口始終位於頂部,有時我們的應用程序被這些窗口遮擋/覆蓋,但我們的工具提示仍會彈出並在頂部窗口頂部繪製。
我試過使用Form.TopMost
屬性,但這是不可接受的,因爲如果在任何地方都有一個「always on top」窗口,工具提示就不會出現。在這種情況下,我們的應用程序甚至處於活動狀態,所以我們應該顯示工具提示。
如何檢測/確定是否有一個「總在最前面」覆蓋我的形式在鼠標懸停在區域窗口?我想阻止工具提示顯示「通過」窗口。