首頁 >後端開發 >C++ >如何確保WinForm應用程式啟動時最小化到系統托盤而不意外顯示?

如何確保WinForm應用程式啟動時最小化到系統托盤而不意外顯示?

DDD
DDD原創
2025-01-06 02:03:41915瀏覽

How to Ensure a WinForm App Starts Minimized to the System Tray Without Showing Unexpectedly?

在開始時將WinForm 應用程式最小化到托盤

問題

應用程式可以最小化到托盤很簡單。但是,嘗試以最小化狀態啟動應用程式會導致應用程式出現在 alt-tab 對話方塊中,其標題列偶爾可見。

解決方案

為了防止為了防止應用程式在啟動時可見,可以重寫 SetVisibleCore() 方法。這涉及:

protected override void SetVisibleCore(bool value) {
  if (!allowVisible) {
    value = false;
    if (!this.IsHandleCreated) CreateHandle();
  }
  base.SetVisibleCore(value);
}
這裡,allowVisible 是一個標誌集,用於指示應用程式何時應該可見(例如,當使用者點擊 NotifyIcon 上下文選單中的「顯示」時)。如果allowVisible 為 false,則 value 參數設為 false 以防止表單可見。但是,如果表單的句柄尚未創建,則必須在將值設為 false 之前建立它。

此外,為了防止使用者雙擊工作列圖示時應用程式關閉,可以使用OnFormClosing 方法override:

protected override void OnFormClosing(FormClosingEventArgs e) {
  if (!allowClose) {
    this.Hide();
    e.Cancel = true;
  }
  base.OnFormClosing(e);
}
這裡,allowClose 是一個標誌,用於指示何時應關閉應用程式(例如,當使用者點擊NotifyIcon 上下文選單中的「退出」)。如果allowClose為 false,則隱藏表單,並將 e.Cancel 屬性設為 true 以防止應用程式關閉。

附加說明

的 Load 事件在首次顯示該窗體之前,主窗體不會觸發。因此,任何初始化都應該在表單的建構函式中完成,而不是在 Load 事件處理程序中完成。

以上是如何確保WinForm應用程式啟動時最小化到系統托盤而不意外顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn