title: How do you get a different Context Menu if you Lt-Click or Rt-Click on a notify icon?
body: <p>I have a application that is based out of the system tray. I have a nice context menu if you right click on it however I would like a different context menu to show up if you left click on it. Right now I make the different menu show up with </p>
  
  <pre><code>private void niTrayIcon_MouseClick(object sender, MouseEventArgs e)
  {
      if (e.Button == System.Windows.Forms.MouseButtons.Left)
      {
          cmsTrayLeftClick.Show(Cursor.Position);
      }
  
  }
  </code></pre>
  
  <p>That makes the menu show up but clicking off the menu does not make it go away, the only way to make the menu disappear is either click on a item or rt click on the tray icon.</p>
  
  <p>I have also came up with this hack but it does feel like it is the correct way to do it.</p>
  
  <pre><code>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;
      }
  }
  </code></pre>
  
  <p>Is this the correct way of doing it or is there a more elegant way?</p>