我有一個在後臺運行的C#winforms應用程序,正在監聽要按下的熱鍵。當一個熱鍵被按下時,我的表單變成一個簡短的外觀。表單總是運行,但設置爲隱藏狀態直到我收到一個熱鍵事件,此時我將visible屬性設置爲true。代碼如下所示:如何防止我的C#winforms應用程序竊取焦點時,我將可見性設置爲true?
void hook_volumeDown(object sender, KeyPressedEventArgs e)
{
this.Visible = true;
}
需要注意的是,此表單的最高屬性設置爲true。
真的很奇怪的部分是,在我的C#應用程序從另一個應用程序中偷了焦點後,它再也不會這樣做了。例如:我啓動我的應用程序,然後啓動一些完整的應用程序,如Team Fortress 2。然後按下我的熱鍵。軍團要塞2最小化,我看到我的表格。然後,然而,我可以恢復TF2,並再次按下我的熱鍵(具有所需的效果),並且TF2將保持專注。
無論如何,我正在尋找一種解決方法。我在這裏發現了很多涉及類似問題的問題,但所有這些問題都與創建/啓動新表單有關,而不是使現有表單可見(除非我錯過了某些內容)。每次我需要時,我都可以重新編寫應用程序以創建一個新表單,但這需要創建另一種形式,以便等待熱鍵事件始終隱形,因此我寧願將其保留原樣。
任何想法?
不知道我跟着...你是說它的工作原理應該*除了*第一次? – 2010-05-15 07:57:23