Ограничен ли WinForms ListView в VirtualMode 100000000 строк?
У меня есть сценарий сетки с> 500 000 000 строк, которые я хотел бы отобразить в ListView.
Если я искусственно ограничиваю свой ListView для отображения 100 000 000:
_listView.VirtualListSize = _data.Count;
if (_listView.VirtualListSize > 100000000)
_listView.VirtualListSize = 100000000;
Все отлично работает (в VirtualMode естественно). Когда я изменяю свой код на:
_listView.VirtualListSize = _data.Count;
if (_listView.VirtualListSize > 100000001)
_listView.VirtualListSize = 100000001;
В ListView отображается пустая сетка... Это ошибка Microsoft? Откуда это? Это ограничение Win32 ListView? Самое главное, почему это не задокументировано?
1 ответ
Это не может быть сделано. Как вы обнаружили, 100 000 000 - это абсолютный предел. MS никогда не документировал это (AFAIK), но предел был известен в течение длительного времени: ответ от 2004 года.
На предыдущих версиях Windows при попытке более 100 000 000 разбился ОС:)
На моих машинах с XP и Vista, проба более 100 000 000 строк ограничивает размер до 9 999 999.