2009-09-23 116 views
3

我在寫C#Windows窗體應用程序。如何隱藏表單並保持其在Windows taskbar中處於活動狀態?如何隱藏窗體窗體,但保留任務欄條目?

我已經試過Visible屬性設置爲false,並使用Hide()方法,但是他們隱藏的形式和任務欄條目。

我也試着通過在OnLoadonResize事件設置WindowStateFormWindowState.Minimized永久最小化應用程序。這很有效,但是當你左鍵單擊任務欄中的圖標時,在調整大小之前,會快速刷新應用程序(這很煩人)。

對不起,如果這個問題出現以前,但迄今爲止我看到的每個問題invovles完全隱藏任務欄,或刪除應用程序作爲任務欄項目(將被替換爲NotifyIcon)。

我該如何解決這個問題?

+0

感謝超級快速回復的傢伙! I * *知道該建議dequadin和約翰給對被它們所描述的情景*右*的人,但我想我應該去的多一點深*爲什麼*我想我需要的行爲。 我正在創建一個小應用程序,以便利用/擴展Windows 7中的新JumpLists。我希望任務欄條目處於活動狀態,以便用戶可以訪問JumpList,但我不希望任何表單彈出侵入常規計算機的使用。 – Jama22 2009-09-23 18:46:49

回答

4

設置

FormBorderStyle = None 

&在Load事件:

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.Size = new System.Drawing.Size(0, 0); 
} 
+0

就像一個魅力,謝謝你們真棒 – Jama22 2009-09-23 18:40:48

3

正如dequadin提到的,你可能使用的範例證明一個通知圖標。任務欄是專門爲最小化窗口設計的(在Win7上,應用程序啓動)。所有其他建議(形成不透明度,移動屏幕外的窗口等)都會在Aero Peek上出現在Win7上。

如果你有一個應用程序,它主要是一個後臺任務偶爾UI和需要對需求的用戶交互,正確的方法是系統通知區域(也稱爲紙盒)。在.NET WinForms中,這將是NotifyIcon控件。