クリック直後ではなく、いくつかのアクションを実行した後に、左クリックと右クリックの両方で、通知アイコンのコンテキスト メニューのコンテキスト メニューを表示する必要があります。
次のように左クリックで完全に機能します。
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
ものは右クリックで表示されます。イベントハンドラでそれをオーバーライドする方法はありますか?