Програмное выделение выбранного элемента в ListView

Язык C#: программирование на C#, портирование кода C# на VB и VB на C#.

Модератор: Ramzes

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Програмное выделение выбранного элемента в ListView

Сообщение Thomas » 19.02.2006 (Вс) 22:32

Приветствую.
Помогите студенту. Туплю. :oops:

На форме имеется листвью. В нем отображаются элементы из массива с данными.
В текстбоксе задается значение которое нужно найти в массиве данных.
По окончанию поиска найденный элемент должен быть выделен в листвью.
В VB.NET пишем просто lstvListView1.ListItems.Item(index).Selected=True.
А как в C#?

Код: Выделить всё
vindpos=clZoekEnSort.BinSaerch(txtZoek.Text); // вызываю в классе функцию поиска
         lblVindpos.Text=vindpos.ToString(); // отображаю индекс найденных данных в лейбл.
         lstvData.FullRowSelect=true; // для отображения выделения всей строки
         lstvData.Items[vindpos].Selected=true; // а вот тут не срабатывает. По идее элемент с этим индексом должен быть выделен.
         lstvData.EnsureVisible(vindpos); // для того что бы выделенный элемент был в видимой части


Заранее спасибо.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 20.02.2006 (Пн) 10:34

Код: Выделить всё
lstvData.Items[vindpos].Selected=true;


попробуй заменить на focused

PS В VB.Net кстати тоже фокусед :wink:

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 20.02.2006 (Пн) 22:19

Ramzes
Приветствую.

Не работает. :roll:

//lstvData.Items[vindpos].Selected=true;
lstvData.Items[vindpos].Focused=true;

находить находит, но не выделяет.

Я напишу коменты по русски в коде проекта и выложу весь проект.
Посмотри, если будет желание.
Там еще баг есть, а я ни как не соображу в чем дело. :oops:
Поиск срабатывает через раз.

Спасибо за отклик и
Самые наилучшие пожелания.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Програмное выделение выбранного элемента в ListView

Сообщение codemaster » 22.02.2006 (Ср) 11:31

Thomas писал(а):Приветствую.
Помогите студенту. Туплю. :oops:

На форме имеется листвью. В нем отображаются элементы из массива с данными.
В текстбоксе задается значение которое нужно найти в массиве данных.
По окончанию поиска найденный элемент должен быть выделен в листвью.
В VB.NET пишем просто lstvListView1.ListItems.Item(index).Selected=True.
А как в C#?

Код: Выделить всё
[vindpos].Selected=true; // а вот тут не срабатывает. По идее элемент с этим индексом должен быть выделен.
         lstvData.EnsureVisible(vindpos); // для того что бы выделенный элемент был в видимой части


Заранее спасибо.



попробуй так
Код: Выделить всё
lstvData.Items[vindpos].Selected=true;
lstvData.Select()
//<-
Mit freundlichen Grüßen
//->

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 27.02.2006 (Пн) 22:30

А ларчик просто открывался. :oops:
В свойствах ListView нужно было указать свойство
HideSelection = False вместо True.
И тогда
lstvData.Items[vindpos].Selected=true;
прекрасно выделяет найденный элемент.

Всем большое спасибо за отклики.

_ _ _ _ _ _ _ _ _ _ _ _ _ _
Век живи, век учись. :D


Вернуться в C#

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList