[c#] 如何啟動WinForm應用程序最小化到托盤?



Answers

構造函數中 ,刪除以下兩行:

this.Visible = false;
this.ShowInTaskbar = false;

並在InitializeComponent();之後添加InitializeComponent();

this.WindowState = FormWindowState.Minimized;

在設計器中,將ShowInTaskbar設置為false ,將FormWindowStateNormal

編輯:如果您在加載事件中發布相同的內容,窗口會盡量減少,但仍然在桌面上顯示最小化。 我認為這是一個錯誤。

Question

我已成功創建了一個使用NotifyIcon最小化托盤的應用程序。 手動關閉表單後,它將成功從桌面,任務欄和alt-tab中隱藏。 嘗試最小化應用程序時,會出現此問題。 起初問題是應用程序將被最小化但仍會出現在alt-tab對話框中。 將FormBorderStyle更改為其中一個ToolWindow選項(來自“None”選項)修復此問題,但引入了另一個問題。 當應用程序首次啟動時,在開始菜單上方可以看到最小化窗口的標題欄:

打開表單並關閉它會使其正確隱藏。 我嘗試了很多變化,但這里基本上是它現在如何工作......

WindowState在Designer中設置為Minimized。 在構造函數中進行一些初始化之後,我有以下幾行:

this.Visible = false;
this.ShowInTaskbar = false;

雙擊NotifyIcon時,我有以下內容:

 this.WindowState = FormWindowState.Normal;
 this.Visible = true;
 this.ShowInTaskbar = true;

就像我說的那樣,我已經嘗試過很多微小的變化(this.Hide()等)。 有沒有辦法讓NotifyIcon成為主要組件,這樣我可以完全啟動並處理表單,同時讓NotifyIcon運行? 必須有一種方法來啟動應用程序,最小化的形式沒有任何奇怪。 請幫幫我找到它!




最小化應用程序並希望將其從Alt + Tab隱藏時:

當您將邊框樣式設置為工具窗口時,還需要設置不透明度以停止顯示在“開始”菜單附近的標題欄。

關於最小化事件:

this.Visible = false;
this.Opacity = 0;
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.ShowInTaskbar = false;

關於規範化事件:

this.Visible = true;
this.Opacity = 100;
this.FormBorderStyle = FormBorderStyle.FixedSingle; //or whatever it was previously set to
this.ShowInTaskbar = true;



Links