我的窗體上有一個ContextMenu,默認情況下應該禁用某些選項,但在用戶右鍵單擊Panel時啓用。在顯示上下文菜單之前觸發C#的MouseLeave?
我寫這個問題的方法,這使得這個特定的菜單項有兩個事件處理小組:
- 的MouseEnter - >啓用選項
- 鼠標離開 - >禁用選項
MouseEnter的作品,但不幸的是,只要用戶右鍵單擊,就會調用MouseLeave。這意味着無論用戶在哪裏右鍵單擊,菜單項都始終處於禁用狀態。
任何想法如何解決這個問題?
我的窗體上有一個ContextMenu,默認情況下應該禁用某些選項,但在用戶右鍵單擊Panel時啓用。在顯示上下文菜單之前觸發C#的MouseLeave?
我寫這個問題的方法,這使得這個特定的菜單項有兩個事件處理小組:
MouseEnter的作品,但不幸的是,只要用戶右鍵單擊,就會調用MouseLeave。這意味着無論用戶在哪裏右鍵單擊,菜單項都始終處於禁用狀態。
任何想法如何解決這個問題?
這是不可避免的。只要上下文菜單彈出,鼠標就會被菜單捕獲,並且面板的MouseLeave事件將觸發。你將不得不這樣做。我無法想到一個體面的替代品,對我來說,你這樣做沒有任何意義。小組有它自己的ContextMenuStrip屬性,也許這是一個主角。或者ContextMenuStrip.SourceControl屬性。
感謝漢斯。這有點費時,但我重新編寫了我實施ContextMenuStrip的方式,並將其直接附加到面板上。 – Ozzah 2011-04-14 01:33:51
MouseLeave不應該是合適的人選..你應該使用ContextMenu的事件來做你正在做的MouseLeave .. – sajoshi 2011-04-11 03:41:12
ContextMenu上的哪個事件? – Ozzah 2011-04-11 03:46:49