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


Answers

構造函數中 ,刪除這兩行:

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

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

this.WindowState = FormWindowState.Minimized;

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

編輯:如果您在Load事件中發布相同,窗口確實最小化,但仍顯示在桌面上最小化。 我認為這是一個錯誤。

Question

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

打開表格並關閉它會導致它正確隱藏。 我嘗試了很多變化,但基本上它是如何工作的

WindowState在設計器中設置為最小化。 在構造函數中進行一些初始化後,我有以下幾行:

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;