Одиночное нажатие для открытия меню для значка панели задач в C#

[112 нет] Нет. Сигналы только вызывают функцию, если функция возвращает Qt, не будет ее использовать.

С другой стороны, в Qt / PyQt говорится, что функция - это слот , если вы используете декоратор @QtCore.pyqtSlot(). В вашем случае это простая функция. Даже в этом случае для сигнала не будут служить данные, которые возвращают вызванный слот или функцию.

Будет ли это прерывание конфликтовать с механизмом сигнала и слотов?

Нет, конфликт не происходит. Возврат к началу, середине или концу не имеет значения, помните, что каждая функция возвращает что-то (если вы не используете return, функция неявно вернет None в конце).


С другой стороны, в графическом интерфейсе задачи функций должны быть легкими, если они тяжелые, вы должны выполнить их в другом потоке.

8
задан Sam 7 May 2009 в 14:18
поделиться

2 ответа

This should do it for you:

private void notifyIcon1_Click(object sender, EventArgs e)
        {
            contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
        }
12
ответ дан 5 December 2019 в 08:00
поделиться

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

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);
        }
    }
9
ответ дан 5 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: