работа с ListView

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: работа с ListView

Сообщение Saturn.65 » 29.04.2010 (Чт) 23:09

Как удалить нужную строку?
Ищу файл, добавляю в ListView. Он добавляется и пишется в тхт, для того, чтобы после загружаться в ListView.
Добавляю еще и еще. С этим нет проблем. Удалять их ListView удаляется, но вот как удалять эту строчку их тхт?
Private Sub Command100_Click()
Dim ofn As OPENFILENAME
ofn.lStructSize = Len(ofn)
ofn.hwndOwner = Form1.hWnd
ofn.hInstance = App.hInstance
ofn.lpstrFilter = "Исполняемые файлы (*.exe)" + Chr$(0) + "*.exe" + Chr$(0)
ofn.lpstrFile = Space$(254)
ofn.nMaxFile = 255
ofn.lpstrFileTitle = Space$(254) 'Название файла
ofn.nMaxFileTitle = 255
ofn.lpstrInitialDir = CurDir
ofn.lpstrTitle = "Добавить файл..."
ofn.flags = 0
Dim a
a = GetOpenFileName(ofn)
If (a) Then

Text8.Text = Trim$(ofn.lpstrFile)
Text9.Text = (ofn.lpstrFileTitle) 'Название файла
'Добавление в список
AddToList Trim$(ofn.lpstrFile), (ofn.lpstrFileTitle), Text8.Text
Command1_Click 'Запись данных Text8.Text в Запись.txt файл
Else
MsgBox "Cancel was pressed"
End If
End Sub

Private Sub Command1_Click() 'Запись данных Text8.Text в Запись.txt файл
Dim F
F = FreeFile
Open App.path & "\Запись.txt" For Append As #F
Print #F, Text8.Text
Close #F
End Sub


Кому не лень, напишите пример ибо отрывками фраз о разных функциях я все равно не дойду.
Главное, ребята, сердцем не стареть...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: работа с ListView

Сообщение Twister » 30.04.2010 (Пт) 7:46

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

Удалять их ListView удаляется, но вот как удалять эту строчку их тхт?
Сломалась клавиша с буковкой "з"? ;)
А я все практикую лечение травами...

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

Re: работа с ListView

Сообщение Денис » 30.04.2010 (Пт) 8:19

Twister писал(а):Сломалась клавиша с буковкой "з"? ;)


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

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

Re: работа с ListView

Сообщение Saturn.65 » 30.04.2010 (Пт) 10:54

Кто может сказать, чем отличается ListView SP5 от ListView SP6? Нашел рабочий код, но когда меняю контрол, чтоб было под ХР выдает ошибку. :?
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Денис » 30.04.2010 (Пт) 11:01

Saturn.65 писал(а):Кто может сказать, чем отличается ListView SP5 от ListView SP6? Нашел рабочий код, но когда меняю контрол, чтоб было под ХР выдает ошибку. :?


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

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

Re: работа с ListView

Сообщение Хакер » 30.04.2010 (Пт) 11:01

Уже тысячу раз говорили. Из SP5 — обёртка над настоящим LV, из SP6 — клон.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: работа с ListView

Сообщение Saturn.65 » 01.05.2010 (Сб) 10:38

Как можно посмотреть не выделенные строки?
Text1.Text = ListView1.SelectedItem.SubItems(1)
Так видно только выделенные.
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Хакер » 01.05.2010 (Сб) 11:12

Думай головой.

Это не заклинания, это код. Он морфируем.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: работа с ListView

Сообщение Saturn.65 » 02.05.2010 (Вс) 14:24

Хакер писал(а):Думай головой.

Как не зайду на форум, что-нибудь спросить, так и ухожу без ничего. Практически все приходится самому изобретать или кубики переделывать. С одной стороны может оно и лучше, а с другой, если не решится тупиковая ситуация, то и проект закрывать приходится.
Нашел я как отобразить все содержимое ListView. Это уже хорошо. :wink:
И еще подскажите пожалуйста код, как нажатием одной кнопки выделять по очереди все строки ListView? Чтобы было как будто мышкой щелкаешь по строкам, начиная сверху. Один клик-одна строчка и все ниже и ниже. И так по кругу, если список будет пройден. Своим умом не дойду. Одна надежда на вас. :)
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Saturn.65 » 03.05.2010 (Пн) 14:04

Хорошо, подскажите тогда как отследить тот момент, когда выделена последняя строчка в ListView при листании списка с помощью клавиши vbKeyUp и что теперь пора нажимать клавишу vbKeyDown. Или что еще можно сделать, чтоб вернуться в начало списка?
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Хакер » 03.05.2010 (Пн) 14:17

Зачем это может быть нужно?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: работа с ListView

Сообщение Saturn.65 » 03.05.2010 (Пн) 14:49

Хакер писал(а):Зачем это может быть нужно?

Я пробую эмулировать нажатие клавиш Up и Dawn, чтобы считывать данные ListView построчно. Это то я нашел, а вот как вернуться снова наверх? Поэтому дойдя до последней строки надо вернуться вверх либо начать все по кругу считывать. Однако я уперся еще в один тупик: как же я буду передавать фокус ListView, чтобы считывать данные, когда форма будет не видима? :|
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Хакер » 03.05.2010 (Пн) 16:11

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

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

Re: работа с ListView

Сообщение Saturn.65 » 03.05.2010 (Пн) 17:17

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

Вот для клавиши в низ
Код: Выделить всё
Private Sub Label10_Click()
Call keybd_event(vbKeyDown, 0, 0, 0)
   Call keybd_event(vbKeyDown, 0, 0, 0)
   Call keybd_event(vbKeyDown, 0, KEYEVENTF_KEYUP, 0)
   Call keybd_event(vbKeyDown, 0, KEYEVENTF_KEYUP, 0)

For i = 1 To ListView1.ListItems.Count
ListView1_Click
Next i
End Sub

На верх тоже так же. Все так-то работает, как надо, если на Label10 кликать. Но если фокус от ListView1 уйдет (а он уйдет, если окно будет не видимым), то работать не будет. :( Одно дело клавиши запустить, а другое еще и фокус как-то сделать. Но мне больше в голову не идет, как можно программно считать весь ListView1 по строчкам?
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Хакер » 03.05.2010 (Пн) 17:34

. Но мне больше в голову не идет, как можно программно считать весь ListView1 по строчкам?

Твои глаза не видят коллекции ListItems? :evil:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: работа с ListView

Сообщение Saturn.65 » 03.05.2010 (Пн) 19:01

Хакер писал(а):Твои глаза не видят коллекции ListItems? :evil:

Короче пойду я от вас. И я вас замучил дурацкими вопросами и мне толку никакого. Все равно я не знаю куда эту коллекцию впиндюрить.
Главное, ребята, сердцем не стареть...

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

Re: работа с ListView

Сообщение Хакер » 03.05.2010 (Пн) 19:10

Впендюрить в For Each цикл. Или в обычный цикл, по индексы элемента коллекции.
—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 » 03.05.2010 (Пн) 21:21

SelectedItem - покажет тебе какой Item выбран. Если его Index равен ListCount, то ты в конце списка.
SelectedItem - он помоему Read\Write, т.е. можно переместить выбранный элемент куда угодно, например в начало списка.
Пишите жизнь на чистовик.....переписать не удастся.....

Пред.

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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 56

    TopList