Программирование >>  Автоматически обновляемые приложения 

1 ... 56 57 58 [ 59 ] 60 61 62 ... 170


1йртинг 6.43 Обработка двойного щелчка

private void notifyIconl DoubleClick(object sender.

System.EventArgs e)

Show();

Windowstate = FormWindowState.Normal;

Наше приложение практически готово к работе. Значок появляется в области уведомлений, не появляется на панели задач при сворачивании и появляется главное окно программы при двойном щелчке. Осталось только добавить контекстное меню для значка. Для этого с панели инструментов берем элемент ContextMenu (или НОВЫЙ ЭЛемент ContextMenuStrip, КОТОрыЙ ПОЯВИЛСЯ

в .NET Framework 2.0) и добавляем его на форму. Создаем меню стандартным образом и для каждой созданной команды меню пишем свой обработчик

события. После этого осталось в свойстве ContextMenu элемента Notifyicon

установить связь с созданным контекстным меню из выпадающего списка. Ваше приложение готово.

Как создать мигающий значок в области уведомлений?

Вы, вероятно, встречали программы, которые мигают своим значком в области уведомлений, привлекая к себе ваше внимание. Например, программа сигнализирует о появлении новых писем или о другом событии. Мы доработаем предыдущую программу таким образом, чтобы наш значок тоже умел мигать. Делается это очень просто (листинг 6.44). Используя таймер, мы управляем свойством visible элемента Notifyicon. Итак, добавляем в проект элемент Timer и устанавливаем для свойства interval значение юоо. Добавим также на форму кнопку, которая будет запускать таймер.

........-..у........................................................................................................................................................,

\ Пшгшг СоЗДбгйие Мигающего значка i

private void buttonl Click(object sender, EventArgs e)

Теперь необходимо добавить обработчик события для события Notifyicon.Doubleclick, В котором МЫ напишем КОД, Восстанавливающий окно программы при двойном щелчке мыши (листинг 6.43).



this.timerl.start о;

private void timerl Tick(object sender, EventArgs e) {

if (notifyiconi.Visible)

notifyiconi.Visible = false;

else

notifyiconi.Visible = true;

private void notifyIconl Click(object sender, EventArgs e) {

this.timerl.Stop();

notifyiconi.Visible = true;

MessageBox.Show( Мигание приостановлено );

Как создать анимированный значок в области уведомлений?

Но если вам нужен не мигающий, а анимированный значок в области уведомлений, то тогда вам надо сначала подготовить серию значков для анимации и периодически менять эти значки в свойстве icon. Пример приведен в листинге 6.45.

Массив, содержащий серию значков для создания анимации private Icon[] alcons = new Icon[8];

текущий значок int curlcon = 0;

private void Forml Load(object sender, EventArgs e) {

загружаем серию значков alcons[О] = new Icon( moonOl.ico ); alcons[1] = new Icon( moon02.ico ); alcons[2] = new Icon( тоопОЗ.ico );



aIcons[3] = new Icon( moon04.ico )

aIcons[4] = new Icon( moonOS.ico )

aIcons[5] = new Icon( тоопОб.ico )

aIcons[6] = new Icon( moon07.ico )

aIcons[7] = new Icon( moonOB.ico )

private void timerl Tick(object sender, {

notifylconl.Icon = alcons[curlcon]; curIcon++;

if (curlcon > 7) curlcon = 0;

Свертывание формы вместо закрытия приложения

Как и было обещано в главе 5, я расскажу, как реализовать функциональность, имеющуюся у интернет-пейджеров ICQ, Qip, Mail@Agent и других программ. Если вы пользуетесь этими программами, то обратили внимание, что при нажатии на крестик в заголовке программы приложение не закрывается, а просто сворачивается в область уведомлений. Делается это при помощи обработки события Formciosing, как показано в листинге 6.46.

\ Листинг 6.46. Сворачивание вместо закрытия

private bool m CloseOK = falser-

private void Forml FormClOSing(object sender, FormClosingEventArgs e) {

Пользователь выходит из программы не через контекстное меню

if (m CloseOK == false)

е.Cancel = true; this.Hide О;

private void BbixoflToolStripMenuItem Click(object sender, EventArgs e)



1 ... 56 57 58 [ 59 ] 60 61 62 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика