Что мне нужно сделать, чтобы приложение Windows Forms работало в системном трее?
Не приложение, которое можно свернуть в трее, а приложение, которое существует только в трее, с не чем иным, как пиктограммой, подсказкой и меню «правой кнопкой мыши».
Что мне нужно сделать, чтобы приложение Windows Forms работало в системном трее?
Не приложение, которое можно свернуть в трее, а приложение, которое существует только в трее, с не чем иным, как пиктограммой, подсказкой и меню «правой кнопкой мыши».
icon.Visible = false
, затемDispose()
значок при выходе из приложения. В противном случае вы все равно увидите значок после выхода из программы. Пару раз протестировав его, вы больше не будете знать, какой значок настоящий.Ответы:
В статье проекта кода « Создание приложения в панели задач» приводится очень простое объяснение и пример создания приложения, которое когда-либо существовало только в системном трее.
В основном измените
Application.Run(new Form1());
строку,Program.cs
чтобы вместо этого запустить класс, который наследуетсяApplicationContext
, и чтобы конструктор для этого класса инициализировалNotifyIcon
источник
Как говорит mat1t - вам нужно добавить NotifyIcon в ваше приложение, а затем использовать что-то вроде следующего кода для установки всплывающей подсказки и контекстного меню:
Этот код показывает значок только в системном трее:
Если у вас есть форма (по любой причине), вам потребуется следующее:
Щелчок правой кнопкой мыши, чтобы получить контекстное меню, обрабатывается автоматически, но если вы хотите выполнить какое-то действие с левой кнопкой мыши, вам нужно добавить обработчик Click:
источник
Я написал приложение панели задач с .NET 1.1, и мне не нужна форма.
Прежде всего, установите объект запуска проекта как Sub
Main
, определенный в модуле.Затем создайте программно компоненты:
NotifyIcon
иContextMenu
.Не забудьте включить
MenuItem
«Выход» или аналогичный.Привязать
ContextMenu
кNotifyIcon
.Invoke
Application.Run()
.В обработчике события для Quit
MenuItem
обязательно вызовите setNotifyIcon.Visible = False
, затемApplication.Exit()
. Добавьте то, что вам нужно,ContextMenu
и обрабатывайте правильно :)источник
Form1
из кода.Form1
.NotifyIcon
класс, чтобы создать значок в системном трее (назначьте ему значок).NotifyIcon
реагируйте на щелчок мышью и различайте правый и левый щелчки, устанавливая контекстное меню и показывая, для какой кнопки (правая / левая) была нажата.Application.Run()
чтобы приложение работало,Application.Exit()
чтобы выйти. Илиbool bRunning = true; while(bRunning){Application.DoEvents(); Thread.Sleep(10);}
. Затем установитеbRunning = false;
для выхода из приложения.источник
Приложение «Системный трей» - это обычное приложение для создания выигрышных форм, с той лишь разницей, что оно создает значок в области системного трея Windows. Чтобы создать значок sys.tray, используйте компонент NotifyIcon, вы можете найти его в Панели инструментов (Общие элементы управления) и изменить его свойства: Значок, подсказка. Также это позволяет обрабатывать сообщения о щелчках мышью и двойном щелчке.
И еще одна вещь, для достижения внешнего вида или стандартного приложения лотка. добавьте следующие строки в ваше главное событие шоу формы:
источник
Насколько я знаю, вы все равно должны писать приложение, используя форму, но не иметь элементов управления в форме и никогда не устанавливать его видимым. Используйте NotifyIcon (образец MSDN которого можно найти здесь ), чтобы написать ваше приложение.
источник
Вот как я это сделал с Visual Studio 2010 , .NET 4
источник
Это очень дружественный фреймворк для приложения области уведомлений ... достаточно добавить NotificationIcon в базовую форму и изменить автоматически сгенерированный код на код ниже:
источник
Просто добавь
к вашей форме объекта. Вы увидите только значок на панели задач.
источник