2011-04-11 46 views
2

我的窗體上有一個ContextMenu,默認情況下應該禁用某些選項,但在用戶右鍵單擊Panel時啓用。在顯示上下文菜單之前觸發C#的MouseLeave?

我寫這個問題的方法,這使得這個特定的菜單項有兩個事件處理小組:

  • 的MouseEnter - >啓用選項
  • 鼠標離開 - >禁用選項

MouseEnter的作品,但不幸的是,只要用戶右鍵單擊,就會調用MouseLeave。這意味着無論用戶在哪裏右鍵單擊,菜單項都始終處於禁用狀態。

任何想法如何解決這個問題?

+1

MouseLeave不應該是合適的人選..你應該使用ContextMenu的事件來做你正在做的MouseLeave .. – sajoshi 2011-04-11 03:41:12

+0

ContextMenu上的哪個事件? – Ozzah 2011-04-11 03:46:49

回答

3

這是不可避免的。只要上下文菜單彈出,鼠標就會被菜單捕獲,並且面板的MouseLeave事件將觸發。你將不得不這樣做。我無法想到一個體面的替代品,對我來說,你這樣做沒有任何意義。小組有它自己的ContextMenuStrip屬性,也許這是一個主角。或者ContextMenuStrip.SourceControl屬性。

+0

感謝漢斯。這有點費時,但我重新編寫了我實施ContextMenuStrip的方式,並將其直接附加到面板上。 – Ozzah 2011-04-14 01:33:51