システム トレイのアプリケーションを最小化する

Adnan Ashraf 2024年2月15日
  1. Windows フォーム アプリケーション
  2. システムトレイ
  3. システム トレイと通知
  4. Windows フォーム アプリケーションをシステム トレイに最小化する
  5. まとめ
システム トレイのアプリケーションを最小化する

この記事では、C# を使用して Windows フォーム アプリケーションをタスク バーではなくシステム トレイに最小化する方法について説明します。 先に進む前に、Windows フォーム アプリケーションとシステム トレイの背景について少し説明する必要があります。

Windows フォーム アプリケーション

Windows フォームは、デスクトップ アプリケーション (および Web アプリ) のグラフィカル ユーザー インターフェイス (GUI) を作成するために使用される .NET フレームワークの組み込みライブラリです。

Windows フォーム アプリケーションの典型的なコントロールには、ボタン、メニュー、テキスト フィールド、チェックボックスなどがあります。サインアップまたはログイン フォームは、ウィンドウ フォーム アプリケーションの簡単な例です。

Window Form アプリケーションの詳細については、こちら を参照してください。

システムトレイ

ほぼすべての Windows フォーム アプリには、通常のルーチンとしてアプリケーションをタスク バーに最小化する機能があります。 これは、頻繁に使用され、迅速なアクセスが必要なアプリケーションに最適です。

しかし、たまにしか使わないプログラムをバックグラウンドで実行し続ける必要がある場合はどうなるでしょうか? このようなアプリをタスクバーに向かって最小化すると、タスクバーがいっぱいになり、タスクバーはナビゲートするのが難しい開いているプログラムで雑然とします.

この目的のために、アプリケーションをシステム トレイに最小化できます。 システム トレイは、タスクバーの右下隅にあります。

すべてのアプリケーションは、システム トレイの小さなアイコンで表されます。 簡単にアクセスできる容量はまだありますが、あなたの視界から隠されています。

チャットやウイルス対策ソフトウェアなどの実行時間の長いアプリケーションは、この方法を頻繁に使用して、ユーザーの視界を妨げないようにします。 ただし、これらのアプリは引き続きバックグラウンドで動作し、必要に応じて、または特定のイベントが発生した場合に、バルーン ヒントでユーザーに通知できます。

システム トレイと通知

システム トレイを使用するために、System.Windows.Forms という名前空間の下にある NotifyIcon コントロールを利用しました。

いくつかの重要な NotifyIcon プロパティは次のとおりです。

  • BalloonTipIcon: バルーン チップと共に表示されるアイコンを示します。
  • BalloonTipText: このテキストはバルーン ヒントに表示されます。
  • BalloonTipTitle: バルーン チップに付けられたタイトルです。
  • Icon: これは、システム トレイに表示されるアイコン ファイルに設定する最も重要なプロパティです。 .ico ファイルのみがサポートされています。
  • テキスト: システム トレイのアイコンにカーソルを合わせると表示されるテキストです。
  • Visible: システム トレイでのアイコンの可視性を設定するプロパティです。

アプリケーションで設定するいくつかのプロパティは次のとおりです。

private void Form1_Load(object sender, EventArgs e) {
  notifyIcon1.BalloonTipTitle = "System Tray";
  notifyIcon1.BalloonTipText = "Some Notification";
  notifyIcon1.Text = "System Tray App";
}

Windows フォーム アプリケーションをシステム トレイに最小化する

タスクバーではなくシステム トレイでアプリケーションを最小化するための段階的な手順を次に示します。

  • ビジュアル スタジオを開きます。 Visual Studio を起動すると、次のメニューが表示されます。

    Visual Studio

  • 上記のスニペットに示すように、メニューから新しいプロジェクトを作成を選択します。
  • アプリケーションに表示されるメニューから WindowsFormApp を選択して、Windows フォーム アプリケーションを作成します。 次に、次へボタンをクリックします。

    プロジェクトの作成

  • 最後に、下の図に示すように、Windows フォーム アプリケーションの名前を入力し、[作成] ボタンをクリックします。

    プロジェクト名

  • 標準の Windows フォーム アプリケーションを構築した後、最初のタスクは、ツールバーから NotifyIcon を取得してフォームに配置することです。 下の図に示すように、ツールボックスをダブルクリックし、メニューから NotifyIcon を選択します。

    システム トレイ - NotifyIcon

  • これを行った後、次の図に示すように、NotifyIcon のプロパティ ウィンドウを開き、表示状態を False に設定します。

    通知アイコン

  • システム トレイに表示されるアプリケーションのアイコンを選択します。 アプリケーションのアイコンを選択しなかった場合、アプリケーションを最小化してもシステム トレイに表示されません。
  • MouseDoubleClick メソッドの NotifyIcon に次のコードを追加します。
    private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) {
      this.Show();
      notifyIcon1.Visible = false;
      WindowState = FormWindowState.Normal;
    }
    
  • 次のステップは、フォームにイベントを追加することです。 これを行うには、以下に示すように、フォームをダブルクリックし、イベント メニューから resize イベントを選択します。

    フォームのサイズ変更

  • 次に、次のコードを追加して、イベントをアクティブにします。
    private void Form1_Resize(object sender, EventArgs e) {
      if (WindowState == FormWindowState.Minimized) {
        this.Hide();
        notifyIcon1.Visible = true;
        notifyIcon1.ShowBalloonTip(1000);
      } else if (FormWindowState.Normal == this.WindowState) {
        notifyIcon1.Visible = false;
      }
    }
    
  • また、Form1_Load メソッドに次のコードを追加して、NotifyIcon のさまざまなプロパティを設定します。
    private void Form1_Load(object sender, EventArgs e) {
      notifyIcon1.BalloonTipTitle = "System Tray";
      notifyIcon1.BalloonTipText = "Some Notification";
      notifyIcon1.Text = "System Tray App";
    }
    
  • 完了したので、アプリケーションをテストしましょう。 アプリケーションを実行すると、次のフォームが表示されます。

    生成されたフォーム

  • 与えられた図は、アプリを最小化する前のシステム トレイの状態を示しています。 ここでは、アプリがタスクバーに表示されていることがわかります。

    最小化前のシステムトレイの状態

  • 以下に示すように、フォームの最小化ボタンをクリックすると。 その後、アプリケーションはシステム トレイで最小化されます。

    生成されたフォーム 2

  • この図は、アプリを最小化した後のシステム トレイの状態を示しています。 ここでは、アプリケーションがシステム トレイに表示されていることがわかります。

    最小化後のシステムトレイの状態

まとめ

Windows フォーム アプリケーションは、既定でタスク バー上で最小化するように設定されています。 ただし、通常バックグラウンドで実行されるアプリケーション (ウイルス対策ソフトウェアなど) はタスクバーに最小化しないでください。使用頻度の低いバックグラウンド アプリケーションのためにタスクバーを急ぐのは得策ではありません。

Windows フォームの NotifyIcon のおかげで、これらのアプリケーションをタスクバーではなくシステム トレイに最小化するようにオーバーライドできます。