我正在尝试选择ListBox中的所有项目并为此目的制作此扩展方法:
public static void SetSelectedAllItems(this ListBox ctl)
{
for (int i = 0; i < ctl.Items.Count; i++)
{
ctl.SetSelected(i, true);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是如果我在ListBox中有很多项目,那么完成这个任务需要很长时间,我可以看看ListBox如何自动向下滚动并选择项目.
有没有办法临时暂停控件的更新,以便任务完成得更快?我试过用:
ctl.SuspendLayout();
for (int i = 0; i < ctl.Items.Count; i++)
...
ctl.ResumeLayout();
Run Code Online (Sandbox Code Playgroud)
但这似乎没有做任何事情.
我有一些网格场景,我希望在ListView中显示> 500,000,000行.
如果我人为限制我的ListView显示100,000,000:
_listView.VirtualListSize = _data.Count;
if (_listView.VirtualListSize > 100000000)
_listView.VirtualListSize = 100000000;
Run Code Online (Sandbox Code Playgroud)
一切正常(自然在VirtualMode中).当我将我的代码更改为:
_listView.VirtualListSize = _data.Count;
if (_listView.VirtualListSize > 100000001)
_listView.VirtualListSize = 100000001;
Run Code Online (Sandbox Code Playgroud)
ListView显示一个空网格......这是一个Microsoft Bug吗?这是从哪里来的?这是Win32 ListView限制吗?最重要的是,为什么没有记录?