我正在將MFC應用程序移植到.NET WinForms。在MFC應用程序中,您可以右鍵點擊菜單或上下文菜單項,然後顯示另一個包含診斷和配置項目的上下文菜單。我試圖將此功能移植到.NET,但我遇到了麻煩。如何右鍵單擊菜單項時顯示上下文菜單
我已經能夠捕獲右鍵單擊,禁用底層菜單的點擊並在正確的位置彈出右鍵菜單,但原始菜單一失去焦點就立即消失。
在MFC中,我們將展示通過調用TrackPopupMenuEx與TPM_RECURSE標誌的新的上下文菜單。
的ContextMenu和新的ContextMenuStrip類在.NET中只能有一個顯示方法。有誰知道如何在.NET中做到這一點?
編輯
我一直在使用TrackPopupMenuEx通過的P/Invoke嘗試過,但限制你使用文本菜單代替的ContextMenuStrip看起來出來的地方在我們的應用程序。它也仍然無法正常工作。它不適用於新的MenuStrip和ContextMenuStrip。
我也嘗試了ToolStripMenuItem的子類來查看是否可以向它添加上下文菜單。這是工作MenuStrip,但ContextMenuStrip仍然允許右鍵單擊事件通過點擊。
爲什麼不直接使用一個子菜單中,這樣,當你將鼠標懸停在菜單項,它顯示了更多的項目? – 2008-11-11 19:18:18
我們的許多菜單已經有子菜單。我們使用此功能爲管理員調整菜單的安全性。例如,右鍵單擊一個菜單並將其設置爲禁用。這存儲在數據庫中並對所有用戶都有影響。 – 2008-11-11 19:21:09