Как использовать свойство Checked объекта ListBox

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

Как использовать свойство Checked объекта ListBox

Сообщение Vova_2581 » 31.03.2013 (Вс) 20:34

Извините за, может быть, детский вопрос. Запутался в трех соснах. Помогите разобраться.
Использую объект ListBox со свойством CheckBox...
Изображение
Мне нужно командно поставить «птички» на всех элемента списка и прочесть те, которые таким образом выделены.
Но почему-то не получается...
Код: Выделить всё
Dim i As Byte
For i = 0 To List1.ListCount - 1
   List1.List(i).Checked = True
Next

Такой код выдает ошибку.
В MSDN описан пример, но он также не работет...
http://msdn.microsoft.com/ru-ru/library/2yc9d57t(v=vs.90).aspx
Код: Выделить всё
' Visual Basic 6.0
' The Visual Basic 6.0 ListBox control didn't support this scenario,
' a ListView control had to be used instead.
Dim s As String
Dim i As Integer
' Loop through all items
For i = 1 To ListView1.ListItems.Count
   ' If an item is checked, add it to the string
   If ListView1.ListItems(i).Checked = True Then
      s = s & "Checked Item" & CStr(i) & " = " & _
ListView1.ListItems(i) & vbCrLf
   End If
Next
' Determine if any items are checked.
If s <> "" Then
    MsgBox s
End If

Подскажите, где ошибка?

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

Re: Как использовать свойство Checked объекта ListBox

Сообщение Хакер » 31.03.2013 (Вс) 20:42

О боже мой.

List1.List(i).Checked = True — «List» — это параметрическое свойство, возвращающее String, а не ссылку на какой-то там интерфейс, чтобы пытаться через точку достучаться к каким-то его свойствам. И если эта фраза тобою прочитывается как «ууу.... что-то умное, я сделал что-то не то, но не понимаю всё», то брось же наконец заниматься фигняй, и займись изучением основ «игровой механики» языка.

List — параметрическое свойство, возвращающее String. Зато есть другое параметрическое свойство, — Selected, — которое и должна использоваться для установки/получения статуса чекбокса соответствующего пункта.

Итого:
Код: Выделить всё
Dim i as integer
For i = 0 To List1.ListCount - 1
   List1.Selected(i) = True
Next


И никаких i as byte!
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как использовать свойство Checked объекта ListBox

Сообщение Vova_2581 » 31.03.2013 (Вс) 21:04

Большое спасибо! Все получилось! :)

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как использовать свойство Checked объекта ListBox

Сообщение Vova_2581 » 31.03.2013 (Вс) 21:06

Странно, что пример из MSDN не работает. Ведь Microsoft должны же учитывать все эти тонкости, что вы описали!

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

Re: Как использовать свойство Checked объекта ListBox

Сообщение Хакер » 31.03.2013 (Вс) 21:13

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

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 31.03.2013 (Вс) 23:18

Vova_2581 писал(а):Странно, что пример из MSDN не работает. Ведь Microsoft должны же учитывать все эти тонкости, что вы описали!

Пример для ListView, а у тебя не ListView.


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

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

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

    TopList