问题标签 [virtualmode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4099 浏览

.net - 使用 VirtualMode=True 时如何更新 WinForms ListView?

我有一个带有大型 ListView 的应用程序,它非常慢,所以我正在实现 VirtualMode。MSDN 似乎没有涵盖我将如何在列表视图中间添加和删除新项目。

例如,ListView 有 1000 个项目(表示磁盘上的文件),在 ListView 的初始填充之后(通过 RetrieveVirtualItem 事件),一些文件将被删除并添加一些文件,因此 VirtualListSize 在更新后甚至可能相同。

问题 1)我如何对 ListView 说“这些项目已被更改/删除”以便它重新查询?

此外,一些文件只是更改,我想在列表视图中反映它们的更改状态。

问题 2)鉴于 VirtualMode 不允许我访问我之前使用的 Items 集合(我在该集合上使用了 ContainsKey 方法),我如何在列表视图中找到一个项目。

听起来很简单,但我自己看不到。非常感谢帮助。

瑞安

0 投票
1 回答
10751 浏览

c# - 如何在虚拟模式下异步填充 ListView?

我想在列表视图中显示我们数据库中的记录 - 但检索可能需要很长时间。我可以使用 RetrieveVirtualItem 告诉我何时需要新的 ListViewItem,添加一个虚拟项目,然后开始检索;但是当数据库返回记录时我该怎么办?当 ListView 处于 VirtualMode 时,我无法更新 ListView 的 Items 集合。有没有办法告诉 ListView 重新加载项目?或者我可以只保留对 ListViewItem 的引用并填充它吗?如果这些都不起作用,我还能如何在虚拟模式下异步填充 ListView?

0 投票
5 回答
5465 浏览

c# - 如何更改虚拟模式DataGridView的行位置?

如何更改虚拟模式DataGridView的行位置?

我正在使用Windows 窗体

0 投票
4 回答
1253 浏览

c# - 在虚拟模式下从数据网格中检索行时出现 C# 异常

当我从虚拟模式数据网格中检索行列表时,我不断收到异常(见下文),这仅在我的行数超过屏幕上显示的行数时才会发生,而且并非每次都会发生。关于虚拟模式,我有什么遗漏吗?

更新>下图显示了问题,索引现在超出了列表范围。这样做的原因是说我有 10 个项目,我隐藏了 5 个,因为它们不需要,我想在 5 个可见的代码上运行一些代码,现在有 5 个项目,但有些项目的索引可能在 5-9 之间,如何我可以重新索引吗?当我在可见的 5 上运行一些代码时,我会显示隐藏的 5,所以我不想忽略这些,当它们都可见时,我需要再次重新索引。非常感谢。

替代文字

0 投票
5 回答
8198 浏览

c# - ListView处于VirtualMode时如何对ListView项目进行排序?

我意识到我必须对 ListView 从中收集项目的集合进行排序:
ListView listCollection = new ListView();

但这似乎不起作用,除非将 ListView 作为 GUI 控件添加到表单中,这反过来又使得添加项目非常慢,因此为什么我必须首先在我的 GUI-ListView 上使用 VirtualMode .

任何人都知道如何解决这个问题或指出我正确的方向吗?

0 投票
2 回答
2189 浏览

c# - 当所选项目不可见时,VirtualMode中的C# ListView闪烁

我知道复制听起来很复杂,但请跟我来:

你有一个 ListViewVirtualMode = true.

选择一个项目,向下滚动以使所选项目超出可视区域,然后尝试将另一个项目添加到 ListView。

您会在瞬间看到它表现异常并看到某种闪烁。如果您升级情况并尝试非常快速地添加很多项目(我每秒添加大约 20 次),您会发现小问题变得非常大。它是闪烁和无效项目的组合。

我已经调查了这个问题,似乎 ListViewRetrieveVirtualItem为所选项目生成了很多事件(即使它显然不可见)。

似乎当我添加一个新项目(增加 VirtualListSize)时,ListView 首先尝试关注所选项目,然后返回到以前的位置。

有没有人遇到过同样的问题?

0 投票
1 回答
634 浏览

datagridview - 具有数百万行的虚拟模式中的空 Datagridview 变慢

我正在尝试创建连接到 sqlserver 的 datagridview。但似乎即使在简单的 datagridview 中也无法快速处理数百万行。所以 滚动到上面的行 datagridview 更新明显更快,向下滚动到最后一行

可以看到效果:

''表单包含具有 3 列的 datagridview

有一些解决方法吗?

0 投票
1 回答
3435 浏览

c# - 禁用对 DataRepeater 控件中某些项目的控件

DataRepeater在 C# Winforms 应用程序中使用 Visual Basic Power Pack 中的控件。该控件未绑定,在 VirtualMode 下运行。

我在此控件中显示多个项目。根据某些标准,我想禁用控件中的按钮。

我在数据转发器的 _DrawItem 事件中尝试了以下操作:

会发生什么是根据控件中的最后一项应该是启用或禁用按钮。

知道如何逐项控制启用状态吗?

谢谢

0 投票
2 回答
2184 浏览

wpf - “虚拟”模式下的 WPF 文本框

是否可以在“虚拟”模式下使用 TextBox。

我想在用户滚动文档时按需提供文本。

0 投票
1 回答
1055 浏览

.net - VirtualMode 中的 WinForms ListView 是否限制为 100,000,000 行?

我有一些网格场景,我想在 ListView 中显示 > 500,000,000 行。

如果我人为地将我的 ListView 限制为显示 100,000,000:

一切正常(自然在 VirtualMode 中)。当我将代码更改为:

ListView 显示一个空网格...这是 Microsoft 错误吗?这是从哪里来的?这是 Win32 ListView 限制吗?最重要的是,为什么没有记录?