C# 是否运行无格式通知用户控件?

C# 是否运行无格式通知用户控件?,c#,.net,winforms,C#,.net,Winforms,在我的代码中,我需要在不显示任何表单的情况下运行通知控件。我该怎么做?我只是将此代码添加到program.cs主线程,但它不起作用。请帮我解决这个问题 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(); TaskbarIcon tb = new TaskbarIcon();

在我的代码中,我需要在不显示任何表单的情况下运行通知控件。我该怎么做?我只是将此代码添加到program.cs主线程,但它不起作用。请帮我解决这个问题

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run();
        TaskbarIcon tb = new TaskbarIcon();
        var balloon = new Warning();
        tb.ShowCustomBalloon(balloon, PopupAnimation.Fade, 12000);

警告是一个用户控件

如果需要,可以添加一个不可见的窗体作为其主机。这并不好,但它适用于您的场景


另一种方法是编写您自己的任务栏图标+通知应用程序,但我想这对于您想要做的事情来说太多了。

我建议使用ApplicationContext实例作为参数调用application.Run()

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();
    }
}

这样,它可以与默认的.NET Notify图标配合使用。

非常优雅,我喜欢这样+1 TaskbarIcon可能是什么,或者创建一个没有表单的UserControl可能会有一个好的结果,这是不必要的。这通常是通过NotifyIcon类完成的。
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

using(var kernel = new Kernel())
{
    Application.Run(kernel);
}