一,导入系统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);