はじめに
System.Windows.Forms.TreeView の Nodes.Add メソッドなどで追加した TreeNode へ System.Windows.Forms.ImageList を介してファイルのアイコンを登録させたとき、方法によっては背景色が透明にならず、灰色や黒色の四角枠となってしまう場合があります。その解決方法を示します。
解決法(コード)
// NG
imageList1.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(filePath));
// GOOD
imageList1.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(filePath).ToBitmap());
System.Drawing.Icon.ExtractAssociatedIcon メソッドの戻り値は System.Drawing.Icon 型ですが、Icon.ToBitmapメソッドにより [System.Drawing.Bitmap] (https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.bitmap) 型に変換して渡せば、背景は透明になります。
おわりに
これだけの記事ですが、お探しの方もいらっしゃると思いますので投稿してみました。技術情報向けマイクロブログサービスがあると嬉しいなぁ...