我的申请是根据系统线提出的。 如果你正确点击,我就有一个冰场。 不过,如果你不点击,我想有一个不同的情况。 现在,我把不同的菜单 show起来。
private void niTrayIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
cmsTrayLeftClick.Show(Cursor.Position);
}
}
这使得菜单上 show,但点击菜单并不能使其消失,使菜单消失的唯一途径是点击一个物品,或点击 t。
我也来到这里,但我感到,这样做的正确办法是这样做的。
private void niTrayIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
niTrayIcon.ContextMenuStrip = cmsTrayLeftClick;
MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic);
mi.Invoke(niTrayIcon, null);
niTrayIcon.ContextMenuStrip = cmsTrayRtClick;
}
}
这样做的正确方式是不是更可取的?