[英]Minimize form to system tray
我想隱藏表單,同時讓我的應用程序在后台運行。 我使用了notifyIcon,它始終保持可見狀態。
我用過“ this.Hide();” 隱藏我的表單,但不幸的是我的應用程序關閉了(也不例外)。
我也在使用線程,並且此表單在第二個線程上。
請告訴我如何解決。
添加以下事件處理程序以調整表單大小並通知圖標單擊事件
private void Form_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
this.Hide();
}
}
private void notifyIcon_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
但這並不能關閉您的應用程序
我也在使用線程,並且此表單在第二個線程上。
我的水晶球說您已經使用ShowDialog()來顯示表單。 是的,在模式對話框中調用Hide()將關閉它。 必要時,模態對話框通常會禁用應用程序中的所有窗口。 如果將其隱藏,則用戶將無法返回到該程序,因此沒有激活的窗口。 這種形式在另一個線程上運行,否則不影響行為。
您需要調用Application.Run(new SomeForm())來避免這種情況。 現在它不是模態的,您可以將其隱藏起來而不會遇到麻煩。 但實際上, 請避免在非UI線程上顯示表單。 沒有理由,您的主線程已經很強大。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.