Как бороться с Отрицательными значениями list.ListCount? - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день! Как сие победить. При заполнении элемента

ListBox

, с какого то значения (вроде свыше 30000) Счетчик элементов

ListCount

начинает "глючить", а именно получает отрицательное значение.
так все таки можно получить как то количество элементов списка если оно превышает 32767?

Решение задачи: «Как бороться с Отрицательными значениями list.ListCount?»

textual
Листинг программы
  1. Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long
  2. Const LB_GETCOUNT = &H18B
  3. Const LB_GETTEXT = &H189
  4. Const LB_GETTEXTLEN = &H18A
  5.  
  6. Private Sub Form_Load()
  7.    
  8.     Dim count As Long
  9.     Dim itemtext As String
  10.     Dim textlen As Long
  11.    
  12.         For i = 1 To 35000
  13.             List1.AddItem "Count" & i
  14.         Next
  15.    
  16.     count = SendMessage(List1.hWnd, LB_GETCOUNT, ByVal CLng(0), ByVal CLng(0))
  17.     textlen = SendMessage(List1.hWnd, LB_GETTEXTLEN, ByVal 34999, ByVal CLng(0))
  18.     itemtext = Space(textlen) & vbNullChar
  19.     textlen = SendMessage(List1.hWnd, LB_GETTEXT, ByVal 34999, ByVal itemtext)
  20.     itemtext = Left(itemtext, textlen)
  21.    
  22.   Debug.Print "count     = " & count
  23.   Debug.Print "itemtext  = " & itemtext
  24.    
  25. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы