啟動最小化到托盤的 WinForm 應用程式
使用 NotifyIcon 建立最小化到托盤的應用程式通常是一個方便的功能。然而,使用隱藏視窗最小化啟動應用程式可能會帶來挑戰。
在一種情況下,最小化應用程式最初會使其在 alt-tab 對話方塊中可見。透過將 FormBorderStyle 變更為 ToolWindow 選項來解決此問題會引入一個新問題:啟動期間視窗的標題列在開始功能表上方短暫可見。
要解決這些問題,請考慮在啟動期間完全阻止窗體出現。這需要重寫 SetVisibleCore() 方法:
protected override void SetVisibleCore(bool value) { if (!allowVisible) { value = false; if (!this.IsHandleCreated) CreateHandle(); } base.SetVisibleCore(value); }
allowVisible 標誌指示表單是否應該可見。透過在啟動時將其設為 false,即使 WindowState 最初設定為“最小化”,也可以防止表單變得可見。
此外,重寫 OnFormClosing 事件處理程序以處理從系統選單關閉表單:
protected override void OnFormClosing(FormClosingEventArgs e) { if (!allowClose) { this.Hide(); e.Cancel = true; } base.OnFormClosing(e); }
將allowClose 設定為 false 會抑制預設的關閉行為,而是隱藏表單。
在NotifyIcon 上下文選單,您可以為 Show 和 Exit 命令定義處理程序,以分別控製表單的可見性和應用程式的終止。
這種方法允許您啟動最小化到托盤的應用程序,而不會產生任何意外的副作用,將 NotifyIcon 保留為主要用戶界面組件。
以上是如何啟動最小化到系統托盤的 WinForms 應用程式而不出現任何可見性問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!