社区
C#
帖子详情
listview显示文件数目有限制吗?
shuimuyi
2007-04-02 12:01:03
用treeview 和listview做的资源管理器
在treeview上双击树接点,打开一个文件夹的时候,当该文件夹下有很多.doc文件(2544个,共36.6 MB),要显示在listview中,这个时候加载显示抛出异常。请问各位这个异常该怎么解决才好呢?
听说是listview打开数量有限制 ,可能吧。具体不知道,所以来问下各位。谢谢了。
...全文
345
12
打赏
收藏
listview显示文件数目有限制吗?
用treeview 和listview做的资源管理器 在treeview上双击树接点,打开一个文件夹的时候,当该文件夹下有很多.doc文件(2544个,共36.6 MB),要显示在listview中,这个时候加载显示抛出异常。请问各位这个异常该怎么解决才好呢? 听说是listview打开数量有限制 ,可能吧。具体不知道,所以来问下各位。谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shuimuyi
2007-04-04
打赏
举报
回复
没有遇到没有图标句柄的文件。
FromHandle()和SHGetFileInfo()参数是有效的。
可能 读文件超时,可是 不知道该如何测试这个。
shuimuyi
2007-04-04
打赏
举报
回复
来通知下热心的朋友们。该问题总算是被处理掉了,可以松了口气了。
原来放在
DestroyIcon(fi.hIcon); // Cleanup
imageList.Images.Add(ic); //添加到ImageList,可放图标和图片,只做一个转换用
继续抛异常。
现在换为:
Icon ic=Icon.FromHandle(fi.hIcon);
imageList.Images.Add(ic); //添加到ImageList,可放图标和图片,只做一个转换用
DestroyIcon(fi.hIcon); // Cleanup
总算一切平安了。
shuimuyi
2007-04-04
打赏
举报
回复
LisrimageList.Images.Add(ic0);
LisrimageList2.Images.Add(ic0);
DestroyIcon(ic0.Handle); // 在这个地方新添加了 释放icon句柄的代码 异常仍然存在
listView1.Clear();
shoushii
2007-04-03
打赏
举报
回复
估计是读文件超时吧!
曲滨_銘龘鶽
2007-04-03
打赏
举报
回复
这个错误应该是 SHFILEINFO 就是错误的
是不是你遇到了没有图标句柄的,文件了
也就是说之前的 api 取得的
Icon.FromHandle(fi.hIcon);
这行出的错误,和 treeview 什么的一点关系也没有
出错的时候看看,fi 里面的其他信息是否都正常!
spkl1
2007-04-03
打赏
举报
回复
检查下FromHandle()和SHGetFileInfo()
参数是否有效
bitpolar
2007-04-02
打赏
举报
回复
这个异常应该不是因为数量引起的
貌似以前加载的数量比这个多的多
把你的异常详细信息贴出来把
shuimuyi
2007-04-02
打赏
举报
回复
按一个同仁的相同的异常开帖问题解决方法:
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,"1错误提示",0,MessageBoxIcon.Error);}
return null;
}
用if(hIcon != System.IntPtr.Zero) 替换 if(! hIcon.Equals(null)) 无作用。
shuimuyi
2007-04-02
打赏
举报
回复
刚刚用了一个简单版的测试了下。bug如下:
protected virtual void SetIcon(ImageList imageList,string FileName,bool tf)
{
SHFILEINFO fi=new SHFILEINFO();
if(tf==true)
{
int iTotal=(int)SHGetFileInfo(FileName,0,ref fi,100, 16640); //SHGFI_ICON|SHGFI_SMALLICON
try
{
if(iTotal >0)
{
Icon ic=Icon.FromHandle(fi.hIcon);
imageList.Images.Add(ic);
}
}
catch(Exception ex)
{ MessageBox.Show(ex.Message,"2错误提示",0,MessageBoxIcon.Error);}
}
else
{
int iTotal=(int)SHGetFileInfo(FileName,0,ref fi,100, 257);
try
{
if(iTotal >0)
{
Icon ic=Icon.FromHandle(fi.hIcon);
imageList.Images.Add(ic);
}
}
catch(Exception ex)
{ MessageBox.Show(ex.Message,"3错误提示",0,MessageBoxIcon.Error);}
}
}
异常信息:
传递到icon的win32句柄无效或者类型错误。
bitpolar
2007-04-02
打赏
举报
回复
加载之前先BeginUpdate
结束之后EndUpdate
shuimuyi
2007-04-02
打赏
举报
回复
谢谢FlashElf(銘龘鶽)提醒。知道了。
没帖代码的原因是,在treeview中打开其他的文件夹都没问题。只有打开这个大文件夹才出现异常。虽然抛异常,在listview中还是可以看到该文件夹下的文件的,加载很慢。
曲滨_銘龘鶽
2007-04-02
打赏
举报
回复
treeview 和listview 有限制不过很大
可能是 int32 的最大值
不过一般没等到那个数字,你就没内存了
CSDN 这地方帖子象洪水一样,如果问问题
最好写的详细点。
这样也好回答,要不下次谁还来找你这个贴。
vfp6.0系统免费下载
Active Document 更适用于 intranet 环境,这是由于大多数用户是使用调制解调器访问 Internet 的,因此在 intranet 环境中对下载大型 Visual FoxPro 运行时刻文件的
限制
要宽松得多。值得庆幸的是,运行时刻文件只需...
SetNumberOfEntries.rar
在处理大量数据时,RecyclerView相比
ListView
有更优的性能表现,因为它能够智能地复用视图,减少内存消耗。本示例中,我们将讨论如何在RecyclerView中设置页面显示的item
数目
,即控制在屏幕可见范围内的item数量。 ...
ListView
控件使用:显示指定item
数目
和屏蔽item选中效果
在android的界面布局中,我们常用到
ListView
控件,有时候并不需要item被选中有任何效果,怎么实现呢? 很简单,在
ListView
的XML布局文件中设置一个属性: android:listSelector="#00000000" //为透明无色
android
listview
嵌套gridview,并实现grid元素部分显示以及点击展开与折叠
即
listview
每一个item里面又各自嵌入一个gridview,但是当二级目录(数据条目)的数量过多时,界面会比较臃肿,这时我们就想要有类似展开与折叠的效果,作者采用的策略是数据分段的分别显示,其中对于显示边界(处于...
listview
嵌套gridview,并实现grid元素部分显示以及点击展开与折叠
有时我们需要用GridView显示目录列表,有时甚至是二级的,即
listview
每一个item里面...作者采用的策略是数据分段的分别显示,其中对于显示边界(处于
限制
显示
数目
的特定位置)的控件要有数据的动态更新和点击判断操作。
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章