У меня проблемы с просмотром списка Win32, и я надеюсь, что у кого-то есть мудрость.При очень быстрой прокрутке (с помощью колесика) иногда вид списка отображается для прокрутки, только для возврата к выбранному элементу, чтобы он находился в поле зрения.Другими словами, список отменяет прокрутку колесика, чтобы показать выбранный элемент в верхней / нижней части списка.Я понимаю, что это звучит очень сомнительно, так как общие элементы управления были забиты до смерти во всем мире.
Вот как вы можете копировать:
- Загрузите просмотр списка в режиме отчета примерно с500 штук или около того (точное количество не имеет значения, вам просто нужно несколько экранов данных).
- Выберите элемент в списке и запомните, что вы выбрали.
- Быстро прокрутите список колесом вниз (к вам).Мы пытаемся прокрутить выбранный элемент как можно быстрее.Вы, вероятно, должны использовать больше силы, чем вы обычно используете на колесе.Это не всегда происходит.Возможно, вам придется попробовать несколько раз.
- Либо свиток завершится нормально, либо он передумает в конце и вернет вас обратно к виду, где выбранный элемент находится на экране.
Это происходит как с обычными, так и с виртуальными списками.Я тестировал Win32 и C # на Windows 7 Ultimate.
Я создал небольшое приложение WinForms , которое демонстрирует поведение (требуется .NET Framework 3.5).Если вы не хотите запускать произвольные исполняемые файлы от незнакомцев (я так понимаю), создайте новое приложение WinForms, удалите представление списка в режиме отчета, добавьте столбец и заполните список в событии загрузки формы с 500 возрастающими целыми числами:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 500; i++)
{
this.listView1.Items.Add(i.ToString());
}
}