2016-04-20 63 views
0

我正在開發一個應用程序,該應用程序開始最小化並在系統托盤中顯示通知圖標。應用程序啓動時隱藏()不起作用

當應用程序正在運行並將其最小化時,窗體在Resize事件中運行Hide()方法以隱藏窗口並且它可以工作(窗口對任務欄隱藏並在系統托盤中顯示通知圖標)。問題是應用程序啓動時。它被配置爲運行最小化。

啓動時,系統托盤圖標出現,窗口顯示最小化,但顯示在任務欄中。

什麼問題?

這是Resize事件:

private void frmMain_Resize(object sender, EventArgs e) 
    { 
     if (this.WindowState == FormWindowState.Minimized) 
     { 
      Hide(); 
      notifyIcon.Visible = true; 
      notifyIcon.ShowBalloonTip(200); 
     } 
    } 
+0

約'this.Hide()什麼;' –

+3

你嘗試設置窗體屬性'ShowOnTaskbar'到'FALSE' – Nino

+0

Resize事件沒有被啓動時啓動嗎? – FINDarkside

回答

0

試試這個

namespace WindowsFormsApplication2 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Resize(object sender, EventArgs e) 
     { 
      HideWindow(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      HideWindow(); 
     } 

     private void HideWindow() 
     { 
      if (this.Visible == true) 
      { 
       if (this.WindowState == FormWindowState.Minimized) 
       { 
        this.Hide(); 
       } 
      } 
     } 
    } 
} 
0

我會嘗試把所有的代碼的Load事件,而不是調整大小的:

private void frmMain_Load(object sender, EventArgs e) 
{ 
    if (this.WindowState == FormWindowState.Minimized) 
    { 
     Hide(); 
     notifyIcon.Visible = true; 
     notifyIcon.ShowBalloonTip(200); 
    } 
} 

Resize事件只有當應用程序被稱爲大小以某種方式手動(我明白這就是爲什麼它當你點擊最小化按鈕,但它不啓動時)。

+0

他不會只是隱藏在負載上,他當他最小化窗口時需要隱藏它,包括窗口在最小化狀態下啓動時首次加載窗口。您的代碼處理第一個啓動案例,但它不處理第一個啓動案例之後的任何最小化。 –

+0

根據OP的問題:當應用程序啓動時,Hide()不起作用。使用我提供的代碼Hide()現在可以在應用程序啓動時工作。我猜OP可以簡單地創建一個事件,在應用程序啓動和應用程序調整大小並從那裏處理它。 –

+0

否...調整大小事件也會在啓動時觸發。但是,我發現問題在哪裏。在表單自動最小化時,啓動時Visible屬性爲false,因此隱藏不起作用。所以我用Shown事件解決了它。如果有通知圖標,我會再次呼叫隱藏。該事件僅在首次顯示錶單時觸發。 – jstuardo

相關問題