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

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

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

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

ListBox

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

ListCount

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

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

textual
Листинг программы
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
Const LB_GETCOUNT = &H18B
Const LB_GETTEXT = &H189
Const LB_GETTEXTLEN = &H18A
 
Private Sub Form_Load()
    
    Dim count As Long
    Dim itemtext As String
    Dim textlen As Long
    
        For i = 1 To 35000
            List1.AddItem "Count" & i
        Next
    
    count = SendMessage(List1.hWnd, LB_GETCOUNT, ByVal CLng(0), ByVal CLng(0))
    textlen = SendMessage(List1.hWnd, LB_GETTEXTLEN, ByVal 34999, ByVal CLng(0))
    itemtext = Space(textlen) & vbNullChar
    textlen = SendMessage(List1.hWnd, LB_GETTEXT, ByVal 34999, ByVal itemtext)
    itemtext = Left(itemtext, textlen)
    
  Debug.Print "count     = " & count
  Debug.Print "itemtext  = " & itemtext
    
End Sub

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

5   голосов , оценка 3.6 из 5
Похожие ответы