问题标签 [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.
c# - 为数据绑定的 datagridview 实现虚拟模式
一个关于实施建议的一般问题。
我有一个绑定到datagridview
.
我想实现virtual mode
是因为集合可能包含数百万个条目(Line
对象),所以我认为一次只“缓存”或显示一些需要的条目可能会更快。我理解虚拟模式的用途是什么?
我看过:http: //msdn.microsoft.com/en-us/library/2b177d6d.aspx
但我无法让它为 a datagridview
that is工作databound
。
我无法指定行数:
编辑:此链接表明我可能必须完全删除绑定。是这样吗?http://msdn.microsoft.com/en-us/library/ms171622.aspx
“如果绑定模式不能满足您的性能需求,您可以通过虚拟模式事件处理程序管理自定义缓存中的所有数据。”
c# - C# winform,如何在一个或多个DataGridView中设置DataGridView VirtualMode
我正在开发一个 Windows 窗体项目。在我的表单中,我有两个 DataGridView。
我想将两个 DataGridViews 设置为 DataGridView.VirtualMode。
除了像下面这样创建两次代码之外,有没有什么有效的方法来完成这项任务?
寻求您的建议,在此先感谢。
c# - C# DataGridView 虚拟模式:使用 CellValuePushed 将数据写回数据库
我目前正在尝试在客户端-服务器系统中实现虚拟 DataGridview 以提高性能。
为此,我使用了 Microsoft 建议的以下代码:http: //msdn.microsoft.com/de-de/library/ms171624.aspx
到那时,一切都很好,并且正在按应有的方式进行。问题是,该示例不包括将数据写回数据库。我需要用户能够提交更改。我了解到,如果用户更改 GridView 中的任何值,就会触发 CellValuePushed-Event。在网上搜索了几个小时后,我仍然没有找到将数据保存回数据库的方法。
我是否必须使用更改后的值更新底层 DataTable,然后刷新 Gridview?
有没有人可以帮助我一些代码或一些提示?任何帮助将不胜感激 :-)
c# - C# DataGridView 虚拟模式:启用排序
有没有办法在虚拟模式下对 DataGridView 进行排序?
我在这个微软示例之后以虚拟模式实现了一个 Gridview:http: //msdn.microsoft.com/de-de/library/ms171624.aspx。我还修改了示例以便能够将数据写入数据库。这很好用,虚拟模式大大提高了速度,但我的客户需要对列进行排序。
在网上搜索了一段时间后,我找到了链接http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/25b3f7c3-95b6-4c49-802b-b5a2a62915ac,但无法获得工作。
谁能指出如果有办法在虚拟模式下对列进行排序,如果是这样,我该怎么做?
提前非常感谢!
c# - 在虚拟模式下闪烁的 ListView
我在默认 ListView 中发现了一个不太有趣的错误(不是所有者绘制的!)。当项目不断添加到其中(通过使用示例)并且用户试图看到项目稍微远离所选项目(向上或向下滚动)时,它会严重闪烁。Timer
我在这里做错了吗?
这是一些重现它的代码:
- 创建 WindowsFormsApplication1;
- 将表格设置
WindowState
为最大化; - 穿上form timer1,设置
Enabled
为true; 放在表格listView1上:
/li>添加一列;
添加事件
/li>最后
/li>
现在运行它并等待列表视图上的滚动条出现(因为计时器将添加足够的项目),然后:
选择列表视图中的第一个项目(使用鼠标或键),然后使用滚动条或鼠标滚轮向下滚动,以便所选项目将超出当前视图(向上)。向下滚动的次数越多,闪烁就越重!看看滚动条在做什么?!?!?
如果向下滚动所选项目,则会出现类似的效果。
问题
我该如何处理?想法是有一种不断更新的日志窗口,可以停止自动滚动并向上/向下调查附近的事件。但有了这种kek 效应,这是不可能的!
c# - 检查所选项目是否可见[详细视图中的虚拟 ListView]
主题有什么好的/简短的解决方案吗?
我能想到:
获取
TopItem
索引(在VirtualMode
创建项目之前是否可以为空?),如果所需项目的索引较小,则不可见,否则获取底部可见索引(顶部索引+listView.ClientSize.Height / GetItemRect(TopItem).Height
),如果所需项目的索引更多,则为无形的。否则可见。以某种方式检测滚动并做某事。
或者也许有更简单的方法?
datagridview - 如何从大型 datagridview 中快速删除重复项?
我需要能够快速删除 datagridview 中的重复条目。不幸的是,我这样做的方式可能需要几分钟才能处理超过 100K 的项目。
这是我正在使用的代码:
datagridview 处于虚拟模式以支持海量数据。
如果有人可以帮助我找出一种快速消除欺骗的方法,我将不胜感激。
.net - ListView控件在虚拟模式下不能拖放
我已经搜索过,但我找不到我的问题的答案。我有一个正在移动到 VirtualMode 的 ListView,但是当我尝试拖动操作时,它失败了。它找不到正确的插入索引,因为这些项目是虚拟的。在虚拟模式下如何正确拖动 ListView 项?
基本上问题是,无论鼠标在哪里, NearestIndex 都会返回 -1。此代码在移至虚拟模式之前有效。
c# - DataGridView 虚拟模式列分隔符双击自动调整大小
我在虚拟模式下有一个带有 DataGridView 的 winform 应用程序,一切正常!唯一的问题是,当我双击列分隔符时,控件试图使列宽适合所有单元格,而不仅仅是显示的或可见的!显然这会挂起应用程序。
我尝试了各种配置
一切!,数据网格和每一列中的设置!没有任何作用
任何想法?
最终结果是:用户能够调整列的大小,但不能通过双击列边框来调整!..我不在乎它是否不适合。
c# - 在虚拟模式下设置 DataGridViewComboBoxCell 的数据源
将虚拟模式与 DataGridView 一起使用时,我订阅了 CellValueNeeded 事件以即时获取数据。在处理程序中,我有区分列的逻辑,如果它是 DataGridViewComboBoxColumn,我想给它一个数据源。我的问题是,当我将数据源分配给单元格时,出现堆栈溢出,因为在 DGV 代码中,再次调用了 CellValueNeeded,并发生了无限循环。有什么干净的方法吗?