2013-01-01 46 views
0

我建立WinForm應用程序沒有示出的任何形式(形式的不透明度爲0且ShowInTaskBar屬性爲false)。它只能從托盤通知圖標訪問。當用戶用鼠標左鍵單擊時,會顯示contextMenustrip菜單。因爲我想檢測LEFT鼠標按鈕,所以我無法使用NotifyIcon的ContextMenu屬性。如何確定用戶是否點擊了ContextMenuStrip?

我想,如果用戶點擊,只要在菜單的,它應該隱藏。我沒有任何想法,我怎麼能做到這一點...

如果我表現出的形式,我可以檢測停用窗體事件,然後隱藏我的菜單,但在描述的情形看起來更難。

+1

可能重複[Invoke NotifyIcon的上下文菜單](http://stackoverflow.com/questions/2208690/invoke-notifyicons-context-menu) –

+0

@HansPassant謝謝。我找不到合適的話題。有用。 – Viper

+0

@HansPassant謝謝。我找不到合適的話題。有用。根據你的建議,我使用了反射來在MouseUp事件中調用ShowContextMenu()方法。我用不同的方式做的是我有兩個ContextMenuStrip菜單:一個與NFI的ContextMenuProperty連接,另一個與NIF不連接。用反射調用ShowContextMenu()和稍後手動顯示未連接菜單解決這個問題,儘管我不連接在NIF ContextMenu屬性菜單。你能解釋爲什麼嗎? – Viper

回答

0

1)而不是設置不透明度爲0好些WindowState = FormWindowState.Minimized

2)你不能檢測到你的程序以外的鼠標點擊,因爲它們是由其他程序或您的操作系統控制,但是處理LeaveMouseLeave事件應該可以幫助你

相關問題