如何运行只有NotifyIcon的“空”Windows应用程序?

时间:2010-05-07 12:51:16

标签: c# .net vb.net notifyicon

我想创建一个只有NotifyIcon的应用程序。它根本不需要具有“主要”形式。当我想要实现这样的东西时,我只是创建一个不可见的形式并运行它,但是会有一种更“优雅”的方式来做这件事,我想知道它。

你一般如何做到这一点?此应用程序不能是Windows服务,因为具有NotifyIcon及其上下文菜单很重要(它们中的每一个都将运行不同的命令)。

由于

3 个答案:

答案 0 :(得分:3)

另一种方法是使用特殊ApplicationContext,它只包含您需要的控件:Creating a Tasktray Application.

答案 1 :(得分:1)

结帐this blog post

  

事实证明这很容易,这太荒谬了。您所要做的就是创建一个继承iContainer接口的类。创建通知图标的实例时,传递容器对象。

它为您提供通知图标,但不是上下文菜单。

答案 2 :(得分:0)

在同一博客中,@ ChrisF提到了https://bluehouse.wordpress.com/2006/01/24/how-to-create-a-notify-icon-in-c-without-a-form/

解决方案比这更荒谬……

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace DataUploader
{
        static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            NotifyIcon icn = new NotifyIcon();
            icn.Click += new EventHandler(icn_Click);
            icn.Visible = true;
            icn.Icon = new System.Drawing.Icon(@”SomeIcon.ico”);
            Application.Run();
        }

        static void icn_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}