Обновить список, чтобы он отображал выбранный индекс? - PullRequest
9 голосов
/ 10 ноября 2011

У меня есть вид списка winforms с 200 элементами, отображаемыми в виде списка деталей.
50 элементов одновременно отображаются на экране. Я хотел бы нажать кнопку и чтобы в списке отображался выбранный индекс # - например # 113.

Проблема, с которой я столкнулся, заключается в том, что я могу выбрать индекс 113, но в списке нет 113 в верхней части диапазона прокрутки.

Что мне нужно сделать, чтобы просмотр списка переместился в selectindex?

Update1:

Ответ должен использовать EnsureVisible:

populateListView();
this.listView1.Items[113].Selected = true;
this.listView1.Items[113].EnsureVisible();   

Ответы [ 3 ]

16 голосов
/ 10 ноября 2011

Вы пытались использовать yourList.SelectedItem.EnsureVisible

Используйте list.TopItem = list.Item[x], чтобы прокрутить этот элемент вверх (или попытаться)

http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.ensurevisible%28VS.90%29.aspx

4 голосов
/ 10 ноября 2011

Убедитесь, что видимый будет гарантировать, что определенный вами элемент виден в окне, но не обязательно верхний элемент в ListView.

Чтобы убедиться, что выбранный вами элемент является верхним, используйте свойство listView1.TopItem

listView1.Items[113].Selected = true;
listView1.TopItem = listView1.SelectedItems[0];
1 голос
/ 14 января 2012

Добавьте следующий код для результата:

list.SelectedIndex = i;
list.ScrollIntoView(list.Items[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...