#c# #.net #winforms
#c# #.net #winforms
Вопрос:
в моем коде мне нужно запустить элемент управления уведомлениями без отображения какой-либо формы, как я могу это сделать? я просто добавляю этот код в основной поток program.cs, но он не работает, пожалуйста, помогите мне с этим?
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
TaskbarIcon tb = new TaskbarIcon();
var balloon = new Warning();
tb.ShowCustomBalloon(balloon, PopupAnimation.Fade, 12000);
предупреждение — это пользовательский элемент управления
Комментарии:
1. Невозможно угадать, чем может быть панель задач, или создание пользовательского элемента управления без формы может хорошо закончиться. Обычно это делается с помощью класса NotifyIcon.
Ответ №1:
Я бы рекомендовал вызвать Application.Run() с экземпляром ApplicationContext в качестве параметра:
class Kernel : ApplicationContext
{
private TaskbarIcon tb = new TaskbarIcon();
public void Show()
{
var ballon = new Warning();
tb.ShowCustomBalloon(balloon, PopupAnimation.Fade, 12000);
}
/// <summary>
/// Closes the application.
/// </summary>
public void Close()
{
Application.Exit();
}
}
Programm.cs:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using(var kernel = new Kernel())
{
Application.Run(kernel);
}
Таким образом, это работает с настройками по умолчанию .NET NotifyIcon.
Ответ №2:
Вы могли бы добавить невидимую форму в качестве хоста, если хотите. Это неприятно, но работает для вашего сценария.
Другим способом сделать это было бы написать свой собственный значок в трее уведомляющее приложение, но я думаю, что это слишком много работы для того, что вы хотите сделать.