2009年10月14日

タスクトレイにアイコンを表示する際、ウィンドウを表示させないようにするには

   このエントリーをはてなブックマークに追加 Clip to Evernote

Webで検索するといくつかの方法があることが分かりますが、僕が一番良いと思う方法は、
コンポーネントを使う方法です。
以下、その手順を簡単に説明します。

1. 新規プロジェクトでWindowsFormsアプリケーションを選択。
  自動作成されるFormは、タスクトレイをダブルクリックなどした際に
  表示されるフォームとして利用することとします。

2. [プロジェクト]メニューから、[コンポーネントの追加]を選択。
  適当な名前を付け、コンポーネントを作成します。

3. 作成したコンポーネントに、NotifyIconとCotextMenuコントロールを
  貼り付けます。

4. NotifyIconとContextMenuの各プロパティを設定します。CotextMenuのメニュー項目の
  設定がちょっと面倒ですが、そのような場合は、FormでContextMenuを貼り付け、
  編集した後に、カット&ペーストでコンポーネントに貼り付けます。

5. Programs.csのMainメソッドを以下のように書き換えます。
  ※もし、設定ファイルを読み込む必要があるのならば、コンポーネントをnewする
   前に読み込み、その値をコンポーネントのコンストラクタに渡します。

6. NotifyIconとContextMenuのイベントハンドラを記述します。

アプリケーションを終了するには、コンポーネントのソース内(たとえば、
ContextMenuのClickイベント内)で、

といったコードを書いてください。
フォームを表示させるには、たとえば、NotifyIconのダブルクリックイベントで、
のようなコードを書きます。

このやり方の利点は、NotifyIconにかかわるコードと、フォームにかかわるコードを別々のソースに分けて書くことができるという点です。
フォームにNotifyIconコントロールを貼り付けてしまうと、様々なイベントハンドラがひとつのFormクラス内に書かれることになり、見通しの悪いコードになってしまいます。
また、上記方法だと、フォームを非表示にするための特別なコードも書く必要がなくなります。



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51909250