此表單有一個NotifyIcon對象。當用戶點擊「關閉」按鈕時,我希望表單不會關閉,但會變得不可見。然後,如果用戶想要再次查看錶單,則可以雙擊系統托盤中的圖標。如果用戶想要關閉表格,他可以右擊圖標並選擇「關閉」。如何使Windows窗體的關閉按鈕不會關閉窗體,而是使其不可見?
有人能告訴我如何使關閉按鈕不關閉窗體,但使其不可見?
(或者,如果有人能想到更好的辦法,以實現通過各種手段在同一目標)
此表單有一個NotifyIcon對象。當用戶點擊「關閉」按鈕時,我希望表單不會關閉,但會變得不可見。然後,如果用戶想要再次查看錶單,則可以雙擊系統托盤中的圖標。如果用戶想要關閉表格,他可以右擊圖標並選擇「關閉」。如何使Windows窗體的關閉按鈕不會關閉窗體,而是使其不可見?
有人能告訴我如何使關閉按鈕不關閉窗體,但使其不可見?
(或者,如果有人能想到更好的辦法,以實現通過各種手段在同一目標)
首先,要處理你的主窗體的.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
設爲成員變量,以便在顯示/隱藏表單時繼續隱藏/顯示圖標。
最簡單的方式來實現你想要什麼是訂閱的FormClosing事件,並設置明顯的假,由包括這種代碼:
FormClosing += (sender, args) => { args.Cancel = true; Visible = false; };
你可以嘗試使它成爲托盤圖標應用程序。這裏有一個很好的教程:http://www.developer.com/net/net/article.php/3336751/C-Tip-Placing-Your-C-Application-in-the-System-Tray.htm