« C#からmdbファイルを開いてテーブル一覧をとる方法。 | ホーム | 32y+2d »

2007年4月 6日

システムトレイ(タスクトレイ)にアイコンを表示するために

http://www.atmarkit.co.jp/fdotnet/dotnettips/392notifyicon/notifyicon.html
システムトレイ(タスクトレイ)にアイコンを表示するには? - @IT

の通りに
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
  e.Cancel = true; // 終了処理のキャンセル
  this.Visible = false; // フォームの非表示
}
とやってると、アプリケーションの終了時など本当に閉じなければならないときすら閉じられずに、永遠にアプリケーションが残ってしまうので注意。正しくはこんなかんじ。
private void Form1_Closing(object sender, FormClosingEventArgs e)
{
    if (e.CloseReason == CloseReason.UserClosing)
    {
        e.Cancel = true;
        this.Visible = false;
    }
}
CloseReasonはUserClosingの他にもあるかも?でもまあWindowsShutdownとかApplicationExitCallとかはthruせんならんよ。。。

トラックバック(0)

トラックバックURL: http://foursics.jp/cgi-bin/mt/mt-tb.cgi/78

コメントする