Один клик, чтобы открыть меню для иконки в трее в C # - PullRequest
8 голосов
/ 07 мая 2009

Как заставить контекстное меню отображать иконку в трее, если щелкнуть ее, а не щелкнуть правой кнопкой мыши?

Я пытался использовать событие MouseClick, но в аргументах событий указатель мыши находится в точке x0y0.

Ответы [ 2 ]

12 голосов
/ 07 мая 2009

Это должно сделать это для вас:

private void notifyIcon1_Click(object sender, EventArgs e)
        {
            contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
        }
9 голосов
/ 07 августа 2009

Альтернативный метод, который я нашел, работает немного лучше:

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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...