0
我有一個WinForms應用程序,只能在托盤中啓動。點擊它,它會打開一個表單。這工作正常。單擊NotifyIcon上下文菜單中的ContextMenuItem調用NotifyIcon單擊事件
notifyIcon.Click += notifyIcon_Click;
//Fires on icon click, AND on contextmenuitem click
private void notifyIcon_Click(object sender, EventArgs e)
{
new ActiveIssues(_hubProxy).Show();
}
我添加了一個上下文菜單,但是當我點擊的ContextMenuItem,它首先觸發NotifyIcon的單擊事件,然後點擊的ContextMenuItem事件,開兩種形式。
notifyIcon.ContextMenu = GetCrestContextMenu();
private ContextMenu GetCrestContextMenu()
{
var contextMenu = new ContextMenu();
contextMenu.Name = "CResT Alerts";
contextMenu.MenuItems.Add(GetTextOptionMenuItem());
return contextMenu;
}
private MenuItem GetTextOptionMenuItem()
{
var textOptionMenuItem = new MenuItem { Text = _textOptedIn ? "Opt Out of Text Alerts" : "Opt In to Text Alerts" };
textOptionMenuItem.Click += TextOptionMenuItem_Click;
return textOptionMenuItem;
}
//Fires on menuitem click, after the NotifyIcon click event is called
private void TextOptionMenuItem_Click(object sender, EventArgs e)
{
if (_textOptedIn) new TextOptOut().Show();
else new TextOptIn().Show();
}
不知道如何要麼沒有它火的notifiyicon點擊事件,或者告訴點擊是上下文菜單上?
不記得行爲,沒有看到任何明顯的錯誤,但你總是可以看看'sender'來看看被點擊的東西。 – Will
是的,我也這麼認爲,但發件人是該點擊的ContextMenuItem,以及該點擊的NotifyIcon。原來,這是右鍵單擊以獲取導致我的問題的上下文菜單。不過感謝您的幫助! – Mike