|
Программирование >> Автоматически обновляемые приложения
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)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |