- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的表单上有一个 C# 中的 ListView 和 ImageList,并读取了一个最多包含大约 1000 个文件的目录。我使用 AddRange 方法使用 fileItems DummyItems 的计数预填充 ListView 和 ImageList,以避免 ListView 闪烁和滚动。
现在在第二步中,我只想在从文件系统读取真实项目时将正确的项目信息分配给虚拟项目。到目前为止,项目文本没问题,但我无法替换虚拟图像。如果我尝试这样做,它总是会抛出一个无效参数异常。要使用 RemoveAtIndex 或 RemoveAtKey 删除图像然后重新添加,我需要很长时间才能遍历 1000 个文件。使用 ImageList 中的“RemoveAtKey”,1000 个文件需要 8 分钟。 “RemoveAtKey”是我发现的瓶颈。如果我尝试清除之前的所有图像并再次使用 AddRange 重新填充,我的项目图像变为空白或发生异常。有人知道我如何使用不同于我使用的其他方法从 1000 个文件中获取 1000 个不同的缩略图并将文件名快速放入 ListView 控件中吗?
最佳答案
首先,您可能希望使用以下代码创建一个名为“ListViewNF”的新用户控件:
class ListViewNF : System.Windows.Forms.ListView
{
public ListViewNF()
{
//Activate double buffering
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
//Enable the OnNotifyMessage event so we get a chance to filter out
// Windows messages before they get to the form's WndProc
this.SetStyle(ControlStyles.EnableNotifyMessage, true);
}
protected override void OnNotifyMessage(Message m)
{
//Filter out the WM_ERASEBKGND message
if(m.Msg != 0x14)
{
base.OnNotifyMessage(m);
}
}
}
这解决了高速添加项目到 ListView 时的闪烁问题。
我还在为你的其他问题做一些研究和测试。
关于C# listview imagelist 快速添加多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178765/
我在 .net 应用程序中为我的 ListView 使用 ImageList 时遇到了一些问题。在我的实现中,根据使用情况,这个 ImageList 可以容纳几千张图像。这个问题最初是在我尝试处理大量
如果将 PNG 图像添加到 ImageList 控件,并在 Windows 窗体 (.Net 2.) 应用程序中将该 ImageList 与 ListView 或 TreeView 一起使用,则 Li
背景:我正在构建一个使用 Facebook API 的 C# Forms 应用程序。我的程序已经可以成功验证并检索 friend ID 和姓名的完整列表。我了解如何将这些添加到 ListView 控件
我一直在试图弄清楚为什么我的 imageList 在我的表单运行时不会呈现我的图像,我正在使用以下代码... public void renderImageList() { i
ImageList 应该为插入其中的所有图像创建一个副本。因此,在将原件添加到列表后处理原件应该是安全的。 为什么下面的测试用例会失败? Bitmap test = new Bitmap(128, 1
处理 ImageList 对象的合适方法是什么? 假设我有一些带有 private ImageList imageList 成员的类。现在,在某个时刻我执行以下代码: // Basically, la
只是想知道是否有办法从资源文件填充 ImageList。我在网上四处张望,但一切似乎都是从 2003/2005 年开始的。 如有任何建议,我们将不胜感激。 最佳答案 下面是将资源中的所有图像读入 Im
我最近接触了 Delphi 10.2 Tokyo,并开始迁移使用 Delphi XE4 制作的项目。虽然我的应用程序像以前一样工作,但保存在 TImageList 中的图像有一个奇怪的问题。该图像列表
我正在尝试为我的 TrayIcon 创建一个 ImageList,但图像显示的质量不高。它们原本非常清晰,但是当我在设计时将它们放入 ImageList 时,它们就变形了。我尝试了 ICO 和 PNG
我的主窗体中有一个带有一堆图标的 imageList 控件。我也想在其他形式上使用这些图标。我怎样才能做到这一点?是否有捷径可寻?谢谢 最佳答案 创建一个用户控件。它们对于像这样的重用很有值(valu
我在 GUI 应用程序的 ImageList 中有几个图标。我想从此列表中设置通知图标,但问题是它只接受图标实例而不接受图像。 System.Windows.Forms.NotifyIcon tray
我想知道是否有可能在 VisualStudio 中避免 ImageList 本地化,这是一件令人讨厌的事情,原因有很多: ImageList 本地化经常破坏我复杂的 winfors,我不知道为什么,但
我的表单上有一个 C# 中的 ListView 和 ImageList,并读取了一个最多包含大约 1000 个文件的目录。我使用 AddRange 方法使用 fileItems DummyItems
我正在制作一个表示图像的类,在 Windows 中,您将图像存储在 ImageList 控件中。此类将用于方便地将图像添加到其他控件(如 ListView 或按钮),或者只是在屏幕上绘制。我的问题是:
背景简介:我有一个 TreeView,它是使用 C++ 中的 Windows API 调用创建的(Visual Studio 2008,尽管这应该没什么区别): hTreeview = CreateW
我使用以下代码从文件中获取图像,通过添加文件夹中的所有文件创建图像列表,最后将其链接到 ListView 控件以显示缩略图。问题是如果我添加 300 张图像,该程序使用了超过 700MB 的内存。图像
ImageList 有一个名为“Draw”的方法: imageList.Draw(graphics, bounds.X, bounds.Y, bounds.Width, bounds.Height,
对 VS2010 和 c# 有点陌生。我继承了一个程序,除此之外,我正在尝试弄清楚所有这些图像列表是如何设置的。基本上,现在我正在尝试修改一些现有的图像列表以添加更多图像,然后也创建一个全新的图像列表
这是我的程序的图片: 如您所见,图标不是透明的,只是白色的。这是有问题的,因为我已经将 ListView 编码为交替颜色,而白色在灰色上看起来非常难看。 现在,我正在使用 bitmap with a
我正在使用 LoadIconWithScaleDown 加载我的图标API(或对 XP 使用 LoadImage。)然后我将它添加到我的 CImageList 中: //CImageList imgL
我是一名优秀的程序员,十分优秀!