前回はランチャーアプリを作成しました。ところでランチャーアプリはパソコンを使用しているあいだ、そのまま使い続けるものです。×ボタンを押しても終了させずタスクトレイのなかで小さくなってもらうためにはどうすればいいのでしょうか?

A、T、F? なんか変なソフトがありますが・・・
アプリをタスクトレイに表示させるためにはアイコンが必要です。アイコンを作成しました。

ランチャーアプリだから「L」ってオイっ!
デザイナからNotifyIconを追加。プロパティーIconを設定。
これで起動するとアイコンがタスクトレイに表示されます。
×ボタンをクリックするとFormClosingイベントが発生します。
|
public partial class Form1 : Form { public Form1() { // その他、省略 FormClosing += Form1_FormClosing; notifyIcon1.MouseClick += NotifyIcon1_MouseClick; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { } } |
Form1_FormClosing内に以下を書き込みます。
e.Cancel = true;
this.Visible = false;
これで×をクリックしても終了しないでフォームが見えなくなります。しかしそれだけでは不十分です。もう一度見えるようにする手段と、本当に終了させるための手段を用意する必要があります。
まず見えるようにする方法。
|
public partial class Form1 : Form { private void NotifyIcon1_MouseClick(object sender, MouseEventArgs e) { this.Visible = true; } } |
次に終了させる方法。
ボタンを追加して、
|
public partial class Form1 : Form { bool IsEnd = false; private void buttonEnd_Click(object sender, EventArgs e) { IsEnd = true; Application.Exit(); } } |
Application.Exit()を実行してもForm1_FormClosing内にかかれている処理が実行させるだけなので終了できません。そこでフィールド変数 IsEndを用意してtrueに変更してIsEnd==trueの場合はそのまま終了させるようにしています。
|
public partial class Form1 : Form { private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (!IsEnd) { e.Cancel = true; this.Visible = false; return; } // IsEnd==trueの場合は普通に終了させる } } |
鳩でも分かるC#管理人からのお願い
できる仕事であれば請け負います。鳩でもわかるC#管理人はクラウドワークスに在宅ワーカーとして登録しています。お仕事の依頼もお待ちしております。
⇒ 仕事を依頼する
コメントについて
コメントで英語などの外国語でコメントをされる方がいますが、管理人は日本語以外はわからないので基本的に内容が理解できず、承認することもありません。それからへんな薬を売っているサイトやリンク先のサイトが存在しないというスパムコメントも多々あります。
Some people make comments in foreign languages such as English, but since the manager does not understand anything other than Japanese, he basically cannot understand the content and does not approve it. Please use Japanese when making comments.
そんななか日本語のコメントもいただけるようになりました。「○○という変数はどこで宣言されているのか?」「××というメソッドはどこにあるのか」「例外が発生する」「いっそのことソース丸ごとくれ」という質問ですが、管理人としては嬉しく思います。「自分が書いた記事は読まれているんだな」と。疑問点には可能な限り答えます。記事に問題があれば修正いたします。
そのうえでお願いがあります。「匿名」という味も素っ気もない名前ではなく、捨てハンでいいのでなにかハンドルネームをつくってほしいと思います。
管理人のモチベーションアップのために
よろしければご支援お願いします。
⇒ 管理人の物乞いリスト