`
huobengle
  • 浏览: 863739 次
文章分类
社区版块
存档分类
最新评论

C#中ListView添加系统文件图标

 
阅读更多
using System.Runtime.InteropServices;
public static uint SHGFI_ICON = 0x100;
public static uint SHGFI_DISPLAYNAME = 0x200;
public static uint SHGFI_TYPENAME = 0x400;
public static uint SHGFI_ATTRIBUTES = 0x800;
public static uint SHGFI_ICONLOCATION = 0x1000;
public static uint SHGFI_EXETYPE = 0x2000;
public static uint SHGFI_SYSICONINDEX = 0x4000;
public static uint SHGFI_LINKOVERLAY = 0x8000;
public static uint SHGFI_SELECTED = 0x10000;
public static uint SHGFI_LARGEICON = 0x0;
public static uint SHGFI_SMALLICON = 0x1;
public static uint SHGFI_OPENICON = 0x2;
public static uint SHGFI_SHELLICONSIZE = 0x4;
public static uint SHGFI_PIDL = 0x8;
public static uint SHGFI_USEFILEATTRIBUTES = 0x10;
public static uint FILE_ATTRIBUTE_NORMAL = 0x80;
public static uint LVM_FIRST = 0x1000;
public static uint LVM_SETIMAGELIST = LVM_FIRST + 3;
public static uint LVSIL_NORMAL = 0;
public static uint LVSIL_SMALL = 1;
[DllImport("Shell32.dll")]
public static extern IntPtr SHGetFileInfo(string pszPath,
uint dwFileAttributes, ref SHFILEINFO psfi,
int cbfileInfo, uint uFlags);
public struct SHFILEINFO
{
public IntPtr hIcon;
public int iIcon;
public int dwAttributes;
public string szDisplayName;
public string szTypeName;
}
[DllImport("User32.DLL")]
public static extern int SendMessage(IntPtr hWnd,
uint Msg, IntPtr wParam, IntPtr lParam);
public void ListViewSysImages(ListView AListView)
{
SHFILEINFO vFileInfo = new SHFILEINFO();
IntPtr vImageList = SHGetFileInfo("", 0, ref vFileInfo,
Marshal.SizeOf(vFileInfo), SHGFI_SHELLICONSIZE |
SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
SendMessage(AListView.Handle, LVM_SETIMAGELIST, (IntPtr)LVSIL_NORMAL,
vImageList);
vImageList = SHGetFileInfo("", 0, ref vFileInfo,
Marshal.SizeOf(vFileInfo), SHGFI_SHELLICONSIZE |
SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
SendMessage(AListView.Handle, LVM_SETIMAGELIST, (IntPtr)LVSIL_SMALL,
vImageList);
}
public int FileIconIndex(string AFileName)
{
SHFILEINFO vFileInfo = new SHFILEINFO();
SHGetFileInfo(AFileName, 0, ref vFileInfo,
Marshal.SizeOf(vFileInfo), SHGFI_SYSICONINDEX);
return vFileInfo.iIcon;
}
private void button1_Click(object sender, EventArgs e)
{
ListViewSysImages(listView1);
listView1.Items.Add("temp.txt", FileIconIndex(@"c:/temp/temp.txt"));
}
分享到:
评论

相关推荐

    C# ListView使用例子ListView排列方式演示

    ListView简单例子ListView的简单实例,实例展示了为ListView添加图标,可判断文件扩展名来显示图标。另外可按详细信息、大图标、列表等方式显示ListView中的内容,对显示一些列表式数据的时候,本技巧是很实用的。 ...

    C# winform典型系统开发模板

     11.2.3 获取系统文件及文件夹图标 262  11.2.4 获取指定目录下的所有文件及文件夹 265  11.2.5 Word操作技术 266  11.2.6 进度条的显示 266  11.2.7 对ListView控件中的项进行排序 267  11.3...

    C#设计经典案例设计与实现

    案例6 动态获取系统图标 案例7 动态打开、显示和缩放图像 案例8 在图像上动态加载文字 案例9 水平和垂直遮罩图像动画效果 案例10 图像拉伸动画效果 案例11 百叶窗图像动画效果 案例12 翻转和扩展图像动画效果 案例13...

    明日科技C#开发入门及项目实战

    实例088 将数据表中的字段添加到combobox控件中 实例089 对listbox控件中的数据进行排序 实例090 listbox控件拒绝添加重复信息 实例091 限制用户名称长度及设置密码文本 实例092 带查询功能的combobox控件 实例093 ...

    C#编程经验技巧宝典

    79 <br>0116 如何在字符串中查找指定字符 79 <br>0117 如何在字符串中用一子串替换另一子串 80 <br>0118 将新字符串添加到已有字符串中 80 <br>0119 如何在字符串中添加多个空格 81 <br>0120...

    Visual C# 2008程序设计经典案例设计与实现

    案例6 动态获取系统图标 案例7 动态打开、显示和缩放图像 案例8 在图像上动态加载文字 案例9 水平和垂直遮罩图像动画效果 案例10 图像拉伸动画效果 案例11 百叶窗图像动画效果 案例12 翻转和扩展图像动画效果 ...

    C# 资源管理器

    C# 资源管理器 1、使用TreeView和ListView为主要控件 ...3、展开节点之后 能自动添加文件信息到ListView中 4、点击文件夹按钮 可以隐藏和显示TreeView 5、点击向上按钮 可以转到上一级文件夹 6、等等......

    C#开发典型模块大全

    11.2.3 获取系统文件及文件夹图标 262 11.2.4 获取指定目录下的所有文件及文件夹 265 11.2.5 Word操作技术 266 11.2.6 进度条的显示 266 11.2.7 对ListView控件中的项进行排序 267 11.3 设计过程 267 ...

    Visual+C#+2008程序设计经典案例设计与实现.rar

    案例6 动态获取系统图标 案例7 动态打开、显示和缩放图像 案例8 在图像上动态加载文字 案例9 水平和垂直遮罩图像动画效果 案例10 图像拉伸动画效果 案例11 百叶窗图像动画效果 案例12 翻转和扩展图像动画效果 案例13...

    C# 源码 C#2008经典案例

    案例6 动态获取系统图标 案例7 动态打开、显示和缩放图像 案例8 在图像上动态加载文字 案例9 水平和垂直遮罩图像动画效果 案例10 图像拉伸动画效果 案例11 百叶窗图像动画效果 案例12 翻转和扩展图像动画效果 案例13...

    C#开发典型模块大全(光盘)第二部分

    11.2.3 获取系统文件及文件夹图标 11.2.4 获取指定目录下的所有文件及文件夹 11.2.5 Word操作技术 11.2.6 进度条的显示 11.2.7 对ListView控件中的项进行排序 11.3 设计过程 11.3.1 主窗体预览 11.3.2 批量复制、...

    C#.net_经典编程例子400个

    273 实例190 获取窗口文本 273 实例191 判断文件是否正在被使用 274 实例192 在程序中调用.HLP文件 275 实例193 C#中实现文件拖放 276 实例194 文件比较 276 第7章 操作系统与Windows...

    C#开发典型模块大全(光盘)

    11.2.3 获取系统文件及文件夹图标 11.2.4 获取指定目录下的所有文件及文件夹 11.2.5 Word操作技术 11.2.6 进度条的显示 11.2.7 对ListView控件中的项进行排序 11.3 设计过程 11.3.1 主窗体预览 11.3.2 批量复制、...

    C#开发典型模块大全(光盘)第一部分

    11.2.3 获取系统文件及文件夹图标 11.2.4 获取指定目录下的所有文件及文件夹 11.2.5 Word操作技术 11.2.6 进度条的显示 11.2.7 对ListView控件中的项进行排序 11.3 设计过程 11.3.1 主窗体预览 11.3.2 批量复制、...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例088 将数据表中的字段添加到combobox控件中 143 实例089 对listbox控件中的数据进行排序 145 实例090 listbox控件拒绝添加重复信息 146 实例091 限制用户名称长度及设置密码文本 148 实例092 带查询功能的...

Global site tag (gtag.js) - Google Analytics