powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно выбрать элемент в ListView?
16 сообщений из 16, страница 1 из 1
Как программно выбрать элемент в ListView?
    #37835744
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как программно выбрать элемент в ListView? Помогите пожалуйста. (Например известно название строчки в первой колонке). Спасибо
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835865
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем правильный подход. Набор элементов, загруженных в ListView представляет собой коллекцию. Соответственно, надо использовать ключи (Key) и работать с ними.
Код: vbnet
1.
ListView1.ListItems("мой элемент 1").Selected = True


как правило, при загрузке элементов в ListView под рукой есть какой-то ключ (идентификатор в БД и т.п.), но если нету, то в качестве ключа можно использовать и текст элемента (просто при добавлении указывать его дважды, в качестве текста и в качестве ключа).

А если ключи все-таки не используются - придется искать нужный элемент с помощью полного перебора коллекции ListItems циклом For Each
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835870
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну по индексу(по номеру строки в контроле) то тоже можно обратиться
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835898
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопрос такой
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
While Not rsset5.EOF

tex2 = " " & Trim(rsset5.Fields("Login_name")) & " [" & Trim(rsset5.Fields("Lvl")) & "]"
ListView1.ListItems.Add , , tex2, 0, 1

rsset5.MoveNext
Wend



Я с базы данных получаю отсеянные данные и добавляю их в ListView1 . Вопрос такой как переделать добавление записей чтобы у них был свой ключ и как в таком случае сделать выбор элемента?
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835902
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще я пытаюсь добится следующего: я щёлкаю мышкой по какому то элементу в ListView и потом программно удаляются все строчки и добавляються новые, а выделение которое было до обновления пропадает. В том и суть что я хочу сохранить выделенную строчку после обновления данных. Подскажите пожалуйста код!? (только часть когда данные выделенного элемента сохраняються и когда происходит выделение ранее сохраненнего элемента)
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835905
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточню - сохранить выделение строчки после обновления. В предыдущем посте не корректно написал!
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835913
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Slash232
> Вообще я пытаюсь добится следующего: я щёлкаю мышкой по какому то элементу в ListView и потом программно
> удаляются все строчки и добавляються новые, а выделение которое было до обновления пропадает. В том и суть что я хочу
> сохранить выделенную строчку после обновления данных.

Перед програмным удалением бегаешь по коллекции Item'ов и проверяешь у которого из Item'ов Selected = True и запоминаешь
его номер.
После удаляешь, заполняешь по новой и по ListIndex(я все правильно путаю???) делаешь ему Selected = True и он
старновится выделенным.

Теперь два вопроса:
1 - Что делать если заполнилось меньше чес индекс предыдущего выделения?
2 - Что делать, если было выделенно несколько строк?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835917
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело что сижу уже 3 час мучаюсь( по чес индекс не вариант, несколько строк нельзя выделить. Я пробовал как подсказали по названию
Код: vbnet
1.
2.
3.
vibor = ListView1.SelectedItem.Text

ListView1.ListItems.Item(vibor).Selected = True



Но оно увы не выделяет. Может в коде ошибка или все правильно?
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835920
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В переменную vibor текст то сохраняеться (проверял) а вот выделить по тексту строчку не выходит(
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835924
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Slash232
> vibor = ListView1.SelectedItem.Text
> ListView1.ListItems.Item(vibor).Selected = True
>
>
> Но оно увы не выделяет. Может в коде ошибка или все правильно?

А чего оно должно выделять? Ведь Text выделенного или любого другого Item'а это не Key который идентифицирует Item в
коллекции.

Я при заполнении ключ присваиваю свойству Tag и по том для любого Item'а могу получить ключ, с помощью которого получаю
доступ к нужному Itemy

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835930
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши плиз код я не соображаю а надо ехать сдавать( или хоть пример
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835939
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232Я с базы данных получаю отсеянные данные и добавляю их в ListView1 . Вопрос такой как переделать добавление записей чтобы у них был свой ключShocker.Proв качестве ключа можно использовать и текст элемента (просто при добавлении указывать его дважды, в качестве текста и в качестве ключа).
Slash232как в таком случае сделать выбор элемента?Shocker.Pro
Код: vbnet
1.
ListView1.ListItems("мой элемент 1").Selected = True



Как запомнить в переменной ключ текущего выбранного элемента?
Код: vbnet
1.
k = ListView1.SelectedItem.Key
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835945
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносЯ при заполнении ключ присваиваю свойству Tag и по том для любого Item'а могу получить ключ, с помощью которого получаю
доступ к нужному ItemyИгорь, а зачем? Ключ элемента и так доступен, это не классическая коллекция.
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835951
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть как это изменить?

Код: vbnet
1.
2.
3.
4.
5.
6.
vibor = ListView1.SelectedItem.Key
.....
ListView1.ListItems.Clear
.....

ListView1.ListItems(vibor).Selected = True
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37835992
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Slash232
> Напиши плиз код я не соображаю а надо ехать сдавать( или хоть пример
Это код на фокспро, у меня нет сейчас VB6.
Scan-Endscan - это цикл заполнения, а после код выделения, если было выделенно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Scan
 If Transform(code_top) = '0' Then
  N = o.Add(, 1, Transform(Code)+"_", Alltrim(Name) + "(Заявок:" + Transform(count_node) + ";Всего:" + 
Transform(count_branch) + ")", 2, 1)
 Else
  N = o.Add(Transform(code_top)+"_", 4, Transform(Code)+"_", Alltrim(Name) + "(Заявок:" + Transform(count_node) + 
";Всего:" + Transform(count_branch) + ")", 2, 1)
 Endif
 N.Tag = Transform(Code)
 Replace fullpathtree_7 With N.Fullpath
Endscan

If !Isnull(This.Tag) And Val(This.Tag) <> 0 Then
 Try
  With This.Nodes.Item(Alltrim(This.Tag)+"_")
   .EnsureVisible()
   .Selected = .T.
  Endwith
 Catch
 Endtry
Endif



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как программно выбрать элемент в ListView?
    #37836003
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Игорь, а зачем?

Чисто по привычке, которая пришла из С++, там к этому Tag цеплялся указатель на объект с которым нужно было работать при
каких-то изменениях.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно выбрать элемент в ListView?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]