运行无形通知用户控制?

时间:2011-04-09 14:21:19

标签: 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);

警告是用户控件

2 个答案:

答案 0 :(得分:8)

我建议使用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();
    }
}

Programm.cs:

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

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

这种方式适用于默认的.NET NotifyIcon。

答案 1 :(得分:0)

如果您愿意,可以添加一个不可见的表单作为主机。它并不好,但它适用于您的场景。

另一种方法是编写自己的托盘图标+通知应用程序,但我想这对你想做的事情来说太多了。