2012-06-29 37 views
3

此表單有一個NotifyIcon對象。當用戶點擊「關閉」按鈕時,我希望表單不會關閉,但會變得不可見。然後,如果用戶想要再次查看錶單,則可以雙擊系統托盤中的圖標。如果用戶想要關閉表格,他可以右擊圖標並選擇「關閉」。如何使Windows窗體的關閉按鈕不會關閉窗體,而是使其不可見?

有人能告訴我如何使關閉按鈕不關閉窗體,但使其不可見?

(或者,如果有人能想到更好的辦法,以實現通過各種手段在同一目標)

回答

9

首先,要處理你的主窗體的.FormClosing事件(或通過重寫OnFormClosing方法)。通過將e.Cancel設置爲true來取消。

然後,您使用NotifyIcon將圖標添加到系統托盤。

最後,請致電.Hide()隱藏表格。

protected override void OnFormClosing(FormClosingEventArgs e) { 
    if (IActuallyWantToCloseFlag) 
     return; 

    var ni = new NotifyIcon(this.components) 
    { 
     Icon = someIcon, 
     Text = "My text", 
     Visible = true 
    }; 
    ni.DoubleClick += (sender, args) => { this.Show(); }; 

    this.Hide(); 
    e.Cancel = true; 
} 

這應該讓你開始。您可能需要將ni設爲成員變量,以便在顯示/隱藏表單時繼續隱藏/顯示圖標。

3

最簡單的方式來實現你想要什麼是訂閱的FormClosing事件,並設置明顯的假,由包括這種代碼:

FormClosing += (sender, args) => { args.Cancel = true; Visible = false; };