2013-11-15 32 views
1

我目前正在使用Windows應用程序。托盤圖標正在調試模式下工作,未處於釋放模式下

我剛剛創建了一個托盤圖標,同時關閉窗體,托盤圖標在系統托盤中可見。

左鍵單擊托盤圖標窗體已最大化爲正常狀態。

右鍵單擊事件在釋放模式下不工作,但在調試模式下工作。

構建此應用程序右後事件不起作用,調試模式下的output.exe文件。

任何幫助,將不勝感激。 在此先感謝。

在窗體的Load

private void MainRelease_Load(object sender, EventArgs e) 
{ 
    TrayIcon.Visible = false; 
    TrayMenu.Items.Add("Exit"); 
    TrayMenu.Items[0].Click += new System.EventHandler(this.Dispose_Click); 
} 

在按鈕關閉事件

​​

在托盤圖標的鼠標點擊事件

private void TrayIcon_MouseClick(object sender, MouseEventArgs e) 
{ 
    if (e.Button == System.Windows.Forms.MouseButtons.Left) 
    { 
     this.WindowState = FormWindowState.Normal; 
     TrayIcon.Visible = false; 
     ShowInTaskbar = true; 

    } 
    if (e.Button == System.Windows.Forms.MouseButtons.Right) 
    { 
     TrayMenu.Show(Cursor.Position.X, Cursor.Position.Y); 
    } 
} 

托盤菜單處置事件

private void Dispose_Click(object Sender, EventArgs e) 
{ 
    TrayIcon.Visible = false; 
    TrayIcon.Icon = null; 
    TrayIcon.Dispose(); 
    Application.Exit(); 
} 

處於釋放模式托盤圖標鼠標右鍵單擊事件不起作用。但在調試模式下工作。

請幫我解決這個問題。

+1

TrayMenu是什麼類型?它不是ContextMenu(它沒有Show(int,int)方法)... – elgonzo

+0

@elgonzo推測ContextMenuStrip –

+0

@ elgonzo:我甚至試過TrayMenu.Show();和TrayMenu.Visible = true;也。它不工作 –

回答

0

也許這是一個愚蠢的答案,但你確定你的發佈版本是最新的?如果你在設計器中進行調試,那麼當你運行一個Build時,發佈版本不會更新,除非你這樣設置。也許您的發佈版本是在添加代碼以處理右鍵單擊之前發佈的?

如果不是這樣,如果您從發佈文件夾運行發佈版本,而不是在發佈模式下從設計器進行調試,發佈版本是否可以正常工作?

+0

版本構建僅限於最新版本。我刪除了Debug和Release文件夾,並創建了一個新的build.Then錯誤仍然存​​在。 –

相關問題