Visual Studioもない、ネットにも繋がらない、windowsの標準アプリしかない、そんな環境でちょっとしたデスクトップアプリをC#で作りたいとき。
デフォルトのwindows10だとiconファイルが作れない
ペイントだとiconファイルで保存できないので、Notifyiconを表示できない事象が発生。
Windows10でアイコンファイルを作成する方法
上記を参考にiconファイル作成
- ペイントで画像を作成し、32×32の24ビットマップ形式で保存
- ファイルの拡張子をbmp⇒iconに変更
- 以下のようにNotifyIconの作成
form.cs
this.notifyIcon = new NotifyIcon()
{
Icon = new Icon("作ったアイコン画像.icon"),
Visible = true,
Text = "sample"
};
エラー発生
System.ArgumentException: 'Argument 'picture' must be a picture that can be used as a Icon.'
ビットマップファイルををコード内でiconファイルに変換
ひとまず、拡張子をbmp⇒iconに戻す。
form.cs
var bitmap = new Bitmap("作ったアイコン画像.bmp");
this.notifyIcon = new NotifyIcon()
{
Icon = Icon.FromHandle(bitMap.GetHicon()),
Visible = true,
Text = "sample"
};
タスクトレイに作成したアイコンが表示される。
まとめ
iconファイルを作れない環境で、Notifyiconを表示することができた。
bmp⇒iconへ変換するツールを作ってもいいかもしれないけど
いちいち変換が面倒なのでbmpでもアイコン表示できるよう対応したほうが楽なのかも。