簡體   English   中英

最小化系統托盤中的表格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM