一,导入系统dll函数:
using System.Runtime.InteropServices;
[DllImport("Shell32.dll")] public static extern int ExtractIcon(IntPtr h, string strx, int ii); protected virtual Icon myExtractIcon(string FileName, int iIndex) { try { IntPtr hIcon = (IntPtr)ExtractIcon(this.Handle, FileName, iIndex); if (!hIcon.Equals(null)) { Icon icon = Icon.FromHandle(hIcon); return icon; } } catch (Exception ex) { MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error); } return null; }
二,按照以下方式调用函数
//加载图标文件 Icon ic0 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 15);//我的电脑 0 TreeImageList.Images.Add(ic0); Icon ic2 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 7);//可移动盘 1 TreeImageList.Images.Add(ic2); Icon ic3 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 11);//光盘 2 TreeImageList.Images.Add(ic3); Icon ic1 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 8);//硬盘 3 TreeImageList.Images.Add(ic1); Icon ic4 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 3);//文件夹 4 TreeImageList.Images.Add(ic4); Icon ic5 = myExtractIcon("%SystemRoot%//system32//shell32.dll", 36);//文件 5 TreeImageList.Images.Add(ic5);