Главная страница » Статьи и уроки » C# статьи » Работа с треем. Мигание значка в трее на C#
Опрос
Какие статьи добавлять?
Выделенные и виртуальные серверы в Европе

Работа с треем. Мигание значка в трее на C#

Автор: administrator Дата: 12-02-2015, 17:42 Категория: Статьи и уроки / C# статьи
Работаем с треем в C#. Как видно из заголовка, здесь будет рассмотрена простая и лично мне очень нравящаяся фича – мигание значка в трее. Получится что-то похожее на мигание «заметки» в QIP, сообщающее о наличии непрочитанных сообщений; или на изменение значка, антивируса Касперского, информирующее о его текущем состоянии и прочее.

Вообще, у меня есть несколько идей, как можно интересно использовать эффект мигания или просто циклической смены значков. Не для «промышленных» приложений, конечно, однако знакомые и друзья смогут оценить:) Хотя об этом наверное будет отдельный пост:)

Итак, перейдем к делу. Для создания эффекта мигания нам потребуется помимо NotifyIcon элемент управления Timer. В нем, чтобы запустить отсчет, нужно обязательно установить значение свойства Enabled в true, а свойства Interval сделать больше 0 (в этом примере оно рано 420). Теперь таймер будет генерировать событие Tick каждый 420 миллисекунд. Для того, чтобы заставить значок мигать, остается только в обработчике этого события прописать соответствующий код. (Ну и не забыть подписаться на это событие, естественно.)


/// флаг для организации мигания
///
private bool _forBlinking = false;
///
/// обрабатываем тик
///
void _timer_Tick(object sender, EventArgs e)
{
    //по флагу определяем, какой значок следует сейчас поставить
    if (_forBlinking)
    {
        _notifyIcon.Icon = _myEmptyIcon;
        _forBlinking = false;
    }
    else
    {
        _notifyIcon.Icon = _myIcon;
        _forBlinking = true;
    }
}
///
/// наша иконка
///
private Icon _myIcon = new Icon("favicon.ico");
///
/// "пустая" иконка
///
private Icon _myEmptyIcon = new Icon("emptyicon.ico");

И, конечно, подписка на событие при инициализации:

//подписываемся на событие тика таймера
_timer.Tick += new EventHandler(_timer_Tick);
  • Не нравится
  • 0
  • Нравится
Просмотров: 3 452 Напечатать Жалоба
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Написать комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: