1. ホーム
  2. c#

[解決済み】システムトレイでのみ動作する.NET Windows Formsアプリケーションを作成するにはどうすればよいですか?

2022-04-03 06:10:40

質問

を作るにはどうしたらいいのでしょうか? Windowsフォーム アプリケーションをシステムトレイで実行できるようにするにはどうすればよいですか?

トレイに最小化できるアプリケーションではなく、トレイにしか存在しない、何もないアプリケーションです。

  • アイコン
  • ツールチップ、および
  • a " 右クリック "メニューを表示します。

解決方法は?

コードプロジェクト記事 タスクトレイのアプリケーションを作成する は、システムトレイにしか存在しないアプリケーションを作成するための非常に簡単な説明と例を示しています。

基本的には Application.Run(new Form1()); の行は Program.cs を継承したクラスを起動するようにします。 ApplicationContext を初期化し、そのクラスのコンストラクタで NotifyIcon

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        Application.Run(new MyCustomApplicationContext());
    }
}


public class MyCustomApplicationContext : ApplicationContext
{
    private NotifyIcon trayIcon;

    public MyCustomApplicationContext ()
    {
        // Initialize Tray Icon
        trayIcon = new NotifyIcon()
        {
            Icon = Resources.AppIcon,
            ContextMenu = new ContextMenu(new MenuItem[] {
                new MenuItem("Exit", Exit)
            }),
            Visible = true
        };
    }

    void Exit(object sender, EventArgs e)
    {
        // Hide tray icon, otherwise it will remain shown until user mouses over it
        trayIcon.Visible = false;

        Application.Exit();
    }
}