首頁 > 後端開發 > C++ > 如何在沒有工件的情況下啟動最小化到系統托盤的 WinForms 應用程式?

如何在沒有工件的情況下啟動最小化到系統托盤的 WinForms 應用程式?

Mary-Kate Olsen
發布: 2025-01-06 04:55:39
原創
896 人瀏覽過

How to Start a WinForms App Minimized to the System Tray Without Artifacts?

啟動最小化到托盤的WinForm 應用程式

創建最小化到托盤的WinForm 應用程式時,您可能會遇到啟動應用程式的問題最小化。這可能會導致啟動應用程式時出現可見的標題列偽像或不正確的行為。

問題:應用程式最小化但出現在Alt-Tab 中

要解決此問題,請更改FormBorderStyle 屬性設定為ToolWindow 選項之一。但是,這可能會引入一個新問題,即在最小化啟動應用程式時,標題列會暫時可見。

解決方案:重寫SetVisibleCore()

啟動應用程式的建議方法最小化且沒有任何可見工件的應用程式是重寫SetVisibleCore( ) 方法。這是一個實作:

protected override void SetVisibleCore(bool value) {
    if (!allowVisible) {
        value = false;
        if (!this.IsHandleCreated) CreateHandle();
    }
    base.SetVisibleCore(value);
}
登入後複製

在此範例中,allowVisible 標誌確保表單僅在使用者明確要求時可見。

處理表單關閉

防止在以下情況下從工作列或alt-tab 關閉應用程式最小化,覆蓋OnFormClosing() 方法:

protected override void OnFormClosing(FormClosingEventArgs e) {
    if (!allowClose) {
        this.Hide();
        e.Cancel = true;
    }
    base.OnFormClosing(e);
}
登入後複製

allowClose標誌確保表單僅在使用者明確要求時關閉。

其他注意事項

請注意Load 事件在表單首次顯示之前不會觸發。因此,請在表單的建構函式而不是 Load 事件處理程序中執行初始化。

以上是如何在沒有工件的情況下啟動最小化到系統托盤的 WinForms 應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板