Переключение изображения значка на панели задач без задержкиC#

Место общения программистов C#
Ответить
Anonymous
 Переключение изображения значка на панели задач без задержки

Сообщение Anonymous »

У меня есть программа .NET, в которой есть возможность включать/отключать функциональные возможности, щелкнув значок на панели задач. Когда я щелкаю значок на панели задач, я переключаюсь с одного значка/изображения на другой, чтобы показать, включена или отключена эта функция. Я использую свойство .Icon (класса NotifyIcon), чтобы установить нужный мне значок/изображение. Это работает, но я столкнулся с проблемой.
После щелчка по значку на панели задач для отображения нового значка/изображения происходит задержка около 300–500 мс. Кроме того, я чувствую, что происходит эффект затухания при переходе от одного изображения к другому. Мне не нужна эта задержка и не нужен эффект затухания при переключении. Я хочу, чтобы мои изменения были мгновенными.
Вот что я пробовал:
  • Установить для свойства Visible значок на панели задач значение false, переключить изображение и вернуть его обратно в true
  • Установить для значка на панели задач значение null, а затем установить новое изображение/значок на Icon
  • Я также создал два экземпляры NotifyIcon, где я бы скрыл один и показал другой.
Эти три решения сработали, но возникает эффект мерцания, вызванный исчезновением/повторным появлением изображений, что является огромной неприятностью. ИИ не помог.
Изменить: я узнал об уведомлении оболочки от ИИ, но забыл об этом упомянуть. Использование NOTIFYICONDATAW() на самом деле не помогло мне переключить изображение (для обновления я использовал NIM_MODIFY). Хотя это потому, что ИИ не дал мне полной информации. На самом деле мне пришлось использовать тот же экземпляр NOTIFYICONDATAW(), изменяя hIcon этого того же экземпляра, а затем выполняя NIM_MODIFY. Это сработало, но эффект задержки и затухания все равно остался.
Можно ли как-нибудь добиться того, чего я хочу?

Подробнее здесь: https://stackoverflow.com/questions/798 ... hout-delay
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»