0
執行某些操作後,我需要爲通知圖標上下文菜單顯示上下文菜單,而不是點擊鼠標右鍵後執行某些操作。作爲執行某些操作後顯示通知圖標上下文菜單
它完全適用於左擊:
sysTrayIcon.MouseClick += OnSysTrayClicked;
private static void OnSysTrayClicked(Object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
PerformActions();
MethodInfo oMethodInfo = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic);
oMethodInfo.Invoke(sysTrayIcon, null);
}
}
但右擊仍自動處理和相關ContextMenuStrip
在右鍵單擊顯示。有什麼方法可以用我的事件處理程序來覆蓋它嗎?
試過選項B.它完美運作。謝謝! PS:你知道Windows如何自動顯示上下文菜單嗎?它不應該檢查並嘗試在MouseUp本身後顯示上下文菜單嗎? – sohil
據我所知,它掛鉤了鼠標右鍵單擊並調用contextMenu.Show(...)。沒有辦法掛鉤。通常情況下,如果您不希望顯示菜單,則可以掛接contextMenu.Opening並將args.Cancel設置爲true。 – Matthias
好的,再次感謝您。 – sohil