【C#】NotifyIconにWindows規定のアイコンを埋め込む

で、「ああーそっか設定しないと出ないんだっけ」と思いながらプロパティを開いて拡張子icoのファイルを求められて「それな」って気持ちになるのも今のところ100%です。

別にアイコンとかいらねぇしなんかあのデフォルトで設定されているよくわかんない四角の奴でいいよと思うんですが、探しても探しても出てきません。どうもあれはどっかのdllに埋め込まれてるっぽいです。頑張って抽出する方法もありますが、そんなことで頑張りたくないです。

そして「これ今までどうやってたんだっけなぁ…?」と思って今まで作った奴を見てみると、100%SystemIconsクラスが使われています。普段あんまり使わないからって忘れすぎですね…。

使い方は恐ろしく簡単で、SystemIconsのプロパティを呼ぶだけです。対応したIconクラスが返ってくるので素直にそのままいれてあげればOKです。

notifyIcon1.Icon = SystemIcons.Application;

どのプロパティでどんなアイコンが返ってくるかはここに書いてある通りです。

コンストラクタやFormのLoadイベントあたりで呼んであげてもいいですが、Designer.csに書いても別に怒られないので、特に理由がないならそれでいいんじゃないかなと思います。