C# 如何运行一个;“空的”;只有Notify图标的Windows应用程序?

C# 如何运行一个;“空的”;只有Notify图标的Windows应用程序?,c#,.net,vb.net,notifyicon,C#,.net,Vb.net,Notifyicon,我想制作一个只有Notify图标的应用程序。它根本不需要有“Main”表单。当我想实现这样的目标时,我只需要创建一个无形的表单并运行它,但是否有一种更“优雅”的方式来实现这一目标,我想知道 你通常是怎么做的?此应用程序不能是Windows服务,因为具有NotifyIcon及其上下文菜单很重要(它们中的每一个都将运行不同的命令) 谢谢退房: 事实证明,这太容易了,太可笑了。您所要做的就是创建一个继承iContainer接口的类。创建通知图标的实例时,传递容器对象 它为您提供通知图标,但不是上下文菜

我想制作一个只有Notify图标的应用程序。它根本不需要有“Main”表单。当我想实现这样的目标时,我只需要创建一个无形的表单并运行它,但是否有一种更“优雅”的方式来实现这一目标,我想知道

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

谢谢

退房:

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


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

另一种方法是使用special,它只包含您需要的控件:

来自同一篇博文@ChrisF

解决办法比这更荒谬


@吞食-我不知道。我本来想发布一篇文章,我认为你确实需要一个主表单,但我决定先做一个搜索——只是为了确定。我看到了我链接到的帖子,它似乎回答了你的问题。我自己还没有试过。而且,我不知道你可以只做Application.Run(),这样会使应用程序运行一个空消息循环。
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();
        }
    }
}