システム トレイのアプリケーションを最小化する
この記事では、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 を起動すると、次のメニューが表示されます。
-
上記のスニペットに示すように、メニューから
新しいプロジェクトを作成
を選択します。 -
アプリケーションに表示されるメニューから
WindowsFormApp
を選択して、Windows フォーム アプリケーションを作成します。 次に、次へ
ボタンをクリックします。 -
最後に、下の図に示すように、Windows フォーム アプリケーションの名前を入力し、[作成] ボタンをクリックします。
-
標準の Windows フォーム アプリケーションを構築した後、最初のタスクは、ツールバーから
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"; }
-
完了したので、アプリケーションをテストしましょう。 アプリケーションを実行すると、次のフォームが表示されます。
-
与えられた図は、アプリを最小化する前のシステム トレイの状態を示しています。 ここでは、アプリがタスクバーに表示されていることがわかります。
-
以下に示すように、フォームの最小化ボタンをクリックすると。 その後、アプリケーションはシステム トレイで最小化されます。
-
この図は、アプリを最小化した後のシステム トレイの状態を示しています。 ここでは、アプリケーションがシステム トレイに表示されていることがわかります。
まとめ
Windows フォーム アプリケーションは、既定でタスク バー上で最小化するように設定されています。 ただし、通常バックグラウンドで実行されるアプリケーション (ウイルス対策ソフトウェアなど) はタスクバーに最小化しないでください。使用頻度の低いバックグラウンド アプリケーションのためにタスクバーを急ぐのは得策ではありません。
Windows フォームの NotifyIcon
のおかげで、これらのアプリケーションをタスクバーではなくシステム トレイに最小化するようにオーバーライドできます。