работа с ListView

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Linzer
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 18.02.2008 (Пн) 13:14

работа с ListView

Сообщение Linzer » 29.12.2009 (Вт) 16:07

Проблемма такая: есть ListView, допустим с 2мя столбцами, нужно по нажатию на строку вытащить текст, который находится во 2м столбце нажатой строки. Пустяк, но чето не могу сделать. Помогите люди добрые! :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: работа с ListView

Сообщение Хакер » 29.12.2009 (Вт) 16:07

Поддержать морально?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Linzer
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 18.02.2008 (Пн) 13:14

Re: работа с ListView

Сообщение Linzer » 29.12.2009 (Вт) 16:11

Желательно советом, а лучше примером :D

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: работа с ListView

Сообщение djalex777 » 29.12.2009 (Вт) 16:22

А как ты сделал так, чтобы у тебя текст во второй столбец вставлялся?

Linzer
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 18.02.2008 (Пн) 13:14

Re: работа с ListView

Сообщение Linzer » 29.12.2009 (Вт) 16:34

Public r1 As Recordset

For i = 1 To r1.RecordCount
With ListView1.ListItems
Set itm = ListView1.ListItems.Add(, , r1(0))
itm.SubItems(1) = r1(1)
itm.SubItems(2) = r1(2)
itm.SubItems(3) = r1(3)
itm.SubItems(4) = r1(4)
itm.SubItems(5) = r1(5)
itm.SubItems(6) = r1(6)
r1.MoveNext
End With
Next i

просто подключаюсь к БД и забиваю из нее ListView

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: работа с ListView

Сообщение Antonariy » 29.12.2009 (Вт) 17:17

В чем сложность сделать операцию обратную к itm.SubItems(1) = r1(1)?
Лучший способ понять что-то самому — объяснить это другому.

Linzer
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 18.02.2008 (Пн) 13:14

Re: работа с ListView

Сообщение Linzer » 30.12.2009 (Ср) 1:15

Antonariy писал(а):В чем сложность сделать операцию обратную к itm.SubItems(1) = r1(1)?

не могу понять как, с ListView мало работал...
можешь на примере показать?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: работа с ListView

Сообщение alibek » 30.12.2009 (Ср) 10:00

MsgBox itm.SubItems(1)
Lasciate ogni speranza, voi ch'entrate.

Linzer
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 18.02.2008 (Пн) 13:14

Re: работа с ListView

Сообщение Linzer » 30.12.2009 (Ср) 13:57

alibek писал(а):MsgBox itm.SubItems(1)

так выводит только последнию запись... а нужно ту на которую нажал...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: работа с ListView

Сообщение iGrok » 30.12.2009 (Ср) 15:46

Английский знаешь?
Пробегись по набору свойств, посмотри, есть ли там что-то типа "selected", "current" и т.п. и от этого пляши.
label:
cli
jmp label

Linzer
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 18.02.2008 (Пн) 13:14

Re: работа с ListView

Сообщение Linzer » 31.12.2009 (Чт) 0:52

Все понял, если кому интересно вот код:
ind = ListView1.SelectedItem
name_f = ListView1.ListItems.Item(ind).ListSubItems(1)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: работа с ListView

Сообщение alibek » 31.12.2009 (Чт) 9:35

ListView1.SelectedItem.SubItems(1)
Lasciate ogni speranza, voi ch'entrate.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: работа с ListView

Сообщение Saturn.65 » 21.04.2010 (Ср) 10:59

Какое событие есть у ListView, когда было сперва пусто, а потом туда вывелись данные?
Главное, ребята, сердцем не стареть...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: работа с ListView

Сообщение alibek » 21.04.2010 (Ср) 11:01

Saturn.65 писал(а):Какое событие есть у ListView, когда было сперва пусто, а потом туда вывелись данные?

Они туда выводятся без твоего ведома?
Lasciate ogni speranza, voi ch'entrate.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: работа с ListView

Сообщение Saturn.65 » 21.04.2010 (Ср) 12:38

alibek писал(а):Они туда выводятся без твоего ведома?

С моим конечно. Сперва в комбобоксах выбираю нужные значения, потом нажимаю кнопку для расчета, но сразу в ListView вывод не происходит, а с некоторой задержкой в пару секунд. И в это время в статусбаре надпись "Подождите...". Вот и хочу, когда данные выведутся ListView, чтоб надпись менялась. Вот этот момент появления данных меня и интересует.
Главное, ребята, сердцем не стареть...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: работа с ListView

Сообщение alibek » 21.04.2010 (Ср) 13:38

Ну так и сделай, разве тебе это запрещают?
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с ListView

Сообщение Денис » 21.04.2010 (Ср) 14:46

Saturn.65 писал(а):Сперва в комбобоксах выбираю нужные значения, потом нажимаю кнопку для расчета, но сразу в ListView вывод не происходит, а с некоторой задержкой в пару секунд. И в это время в статусбаре надпись "Подождите...". Вот и хочу, когда данные выведутся ListView, чтоб надпись менялась. Вот этот момент появления данных меня и интересует.

Окей, давайте воспроизведем вышеприведенный алгоритм:

Код: Выделить всё
Combo1 = 1
Combo2 = 2

msgbox "Подождите..."

for i=0 to 1000
    'Ждём, ждём, ждем
next

msgbox "момент появления данных"
'Здесь можно писать код, потому что до этого момента было пусто, а теперь вывелись данные
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: работа с ListView

Сообщение SLIM » 21.04.2010 (Ср) 16:44

Денис, это очень криво.
Я так понимаю человек хочет отследить прорисовку в LV строк.
Для этого нужно сабклассить и обрабатывать соответствующие сообщения, после чего снимать сабклассинг.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: работа с ListView

Сообщение Хакер » 21.04.2010 (Ср) 16:46

SLIM, не придумывай.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: работа с ListView

Сообщение SLIM » 21.04.2010 (Ср) 17:53

Хакер писал(а):SLIM, не придумывай.

А ты предлагаешь сделать как Денис?
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: работа с ListView

Сообщение iGrok » 21.04.2010 (Ср) 18:25

SLIM писал(а):
Хакер писал(а):SLIM, не придумывай.

А ты предлагаешь сделать как Денис?

Надпись "подождите" по логике относится к исполняемой в данный момент операции, а не к тому, что отображается в листвью.
Поэтому я в упор не понимаю, зачем что-то перехватывать, и почему не поменять статус по окончанию операции.
label:
cli
jmp label

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: работа с ListView

Сообщение Saturn.65 » 21.04.2010 (Ср) 18:50

SLIM писал(а):Я так понимаю человек хочет отследить прорисовку в LV строк.

Как бы назвать получше? Пустая рама с шапкой, без строк и после нажатия кнопки вычисления в ней появляются строчки с результатами вычислений. Если грубо это написать, то:
Код: Выделить всё
Text1.Text = ListView1.Text

:) Это я шуточно.
Главное, ребята, сердцем не стареть...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с ListView

Сообщение Денис » 21.04.2010 (Ср) 19:52

Saturn.65 писал(а):Как бы назвать получше? Пустая рама с шапкой, без строк и после нажатия кнопки вычисления в ней появляются строчки с результатами вычислений.

Яснее, яснее сформулируйте, что там у вас происходит? Единственный телепат на форуме загадочно молчит. Что мы тут с Вами в угадайку будем играть?
ListView1.Items.Add() - это и есть момент появления очередной строки.
ListView1.Item(N).Subitems.Add() - это и есть момент появления следующего столбца в строке.
Они выполняются мгновенно.
Все что нужно сделать это поместить код, начиная со следующей строки. Все чего нужно дождаться, это окончания предшествующего этим приведенным строкам, кода.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: работа с ListView

Сообщение Dmitriy2003 » 21.04.2010 (Ср) 21:27

Денис писал(а):Они выполняются мгновенно.

Черная магия :)
Денис писал(а):Все чего нужно дождаться, это окончания предшествующего этим приведенным строкам, кода.

Это-как-э-то ? :roll:

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: работа с ListView

Сообщение SLIM » 21.04.2010 (Ср) 21:35

Денис писал(а):ListView1.Items.Add() - это и есть момент появления очередной строки.

Это есть момент посыла сообщения.
Денис писал(а):Все чего нужно дождаться, это окончания предшествующего этим приведенным строкам, кода.

И как ты собираешься дождаться? Циклом от 1 до 1000?
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: работа с ListView

Сообщение Хакер » 21.04.2010 (Ср) 21:58

SLIM, какого черта кто-то будет ловить сообщения, чтобы сделать действие, если это действия можно сделать непосредственно до/после вызова Items.Add?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: работа с ListView

Сообщение SLIM » 21.04.2010 (Ср) 22:14

Ну мало ли что случится с сообщением после посыла Items.Add. Это ведь не факт прорисовки. Пользователь может и не увидеть это.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: работа с ListView

Сообщение Хакер » 21.04.2010 (Ср) 22:16

Факт прорисовки волнует лишь тебя на фоне, вероятно, того, что ты некоторое время назад мучился с обработкой сообщений полусамодельного ListView, который у тебя, что бы ты не делал и как бы ни мучился, не хотел красиво и правильно перерисовываться.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: работа с ListView

Сообщение SLIM » 22.04.2010 (Чт) 6:29

Почему полусамодельным? Самым стандартным
Пишите жизнь на чистовик.....переписать не удастся.....

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с ListView

Сообщение Денис » 22.04.2010 (Чт) 8:33

SLIM писал(а):И как ты собираешься дождаться? Циклом от 1 до 1000?


Я объявлю переменную Mozhno as Boolean и в нужном месте присвою ей значение True. Итак, будет, если Mozhno = True, значит, дождались! :lol:

Но если по серьезному, то тут просто не надо заморачиваться низкоуровневыми заморочками типа оконных сообщений. Дружно вспоминаем бритву Оккама.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

След.

Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList  
cron