Question

Comment forcer l'affichage d'un menu contextuel sur une icône de la barre d'état système lorsque l'on clique dessus plutôt que de cliquer avec le bouton droit de la souris?

J'ai essayé d'utiliser l'événement MouseClick, mais les événements ont la position de la souris à x0y0.

Était-ce utile?

La solution

Cela devrait le faire pour vous:

private void notifyIcon1_Click(object sender, EventArgs e)
        {
            contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
        }

Autres conseils

Une autre méthode que j'ai trouvée fonctionne un peu mieux:

private void notifyIcon1_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            System.Reflection.MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
            mi.Invoke(notifyIcon1, null);
        }
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top