Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Scuder
-
- Постоялец

-

-
- Сообщения: 334
- Зарегистрирован: 17.08.2002 (Сб) 13:18
- Откуда: Moscow, Russia
-
Scuder » 14.10.2004 (Чт) 12:33
Никогда не работал с ним.. Всё с БД, с таблицами.. А тут понадобилось без БД обойтись. Короче, надо всего лишь заполнить 2 столбца:
- Код: Выделить всё
Me.ListView1.ColumnHeaders.Add , , "A", 1000
Me.ListView1.ColumnHeaders.Add , , "B", 2000
Me.ListView1.View = lvwReport
For i = 1 To 50
Me.ListView1.ListItems.Add 1, , CLng(Rnd * 1000000)
Me.ListView1.ListItems.Item(1).ListSubItems.Add , , i
DoEvents
Next i
В результате получаю полностью заполненный первый и на 5% заполненный второй. Т.е. он вставляет несколько значений и всё. Остальные пустые.. Почему?
-
Scuder
-
- Постоялец

-

-
- Сообщения: 334
- Зарегистрирован: 17.08.2002 (Сб) 13:18
- Откуда: Moscow, Russia
-
Scuder » 14.10.2004 (Чт) 14:03
При Sorted = True работать не будет.
Rainbow предложила такой вариант:
- Код: Выделить всё
ListView1.ColumnHeaders.Add , , "A", 1000
ListView1.ColumnHeaders.Add , , "B", 2000
ListView1.View = lvwReport
Dim i As Long
Dim li As ListItem
For i = 1 To 50
Set li = ListView1.ListItems.Add(1, , CLng(Rnd * 1000000))
li.ListSubItems.Add , , i
DoEvents
Next i
-
Konst_One
-
- Член-корреспондент академии VBStreets

-

-
- Сообщения: 3041
- Зарегистрирован: 09.04.2004 (Пт) 13:47
- Откуда: Химки
-
Konst_One » 14.10.2004 (Чт) 14:08
а ты сортировки потом включай:
- Код: Выделить всё
....
For i = 1 To 50
Me.ListView1.ListItems.Add , , CLng(Rnd * 1000000)
Me.ListView1.ListItems(i).SubItems(1) = i
Next i
Me.ListView1.Sorted = True
впрочем, решать твою проблему можно несколькими способами , что
Rainbow и показала

-
tyomitch
-
- Пользователь #1352

-

-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 15.10.2004 (Пт) 8:26
Scuder писал(а):Rainbow предложила такой вариант:
- Код: Выделить всё
ListView1.ColumnHeaders.Add , , "A", 1000
ListView1.ColumnHeaders.Add , , "B", 2000
ListView1.View = lvwReport
Dim i As Long
Dim li As ListItem
For i = 1 To 50
Set li = ListView1.ListItems.Add(1, , CLng(Rnd * 1000000))
li.ListSubItems.Add , , i
DoEvents
Next i
А тут, кстати, можно и без промежуточной переменной:
- Код: Выделить всё
ListView1.ListItems.Add(1, , CLng(Rnd * 1000000)).ListSubItems.Add , , i
Имхо на глаз воспринимается легче.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 6