Каково максимальное значение свойства Combobox.NewIndex? - PullRequest
0 голосов
/ 12 марта 2012

В VB6.0, каково максимальное значение MyCombobox.NewIndex?Что это за тип данных?Почему я не могу установить его newIndex в 11001000000?Что я могу сделать, если не могу?

Спасибо

Dim ComboItem As String
With rsTest
        .Sort = "ID Asc"
        .MoveFirst
        While Not .EOF
            ComboItem = .Fields("Code") & " - " & .Fields("Name")
            myCombobox.AddItem (ComboItem)
            myCombobox.ItemData(myCombobox.NewIndex) = .Fields("ID")
            .MoveNext
        Wend
End With

Ответы [ 2 ]

7 голосов
/ 12 марта 2012

Согласно справка , .NewIndex - это свойство только для чтения, которое возвращает индекс последнего добавленного элемента и устанавливать его не имеет смысла.

Поскольку это целое число, его максимум(используемое) значение - 32767. Когда вы добавляете 32769-й элемент в комбинированный список, индекс переносится в отрицательные значения и больше не может использоваться.

Чтобы назначить элементу произвольные данные, используйте .ItemData свойство, которое является длинным и может содержать целочисленные значения от -2,147,483,648 до 2,147,483,647 .

0 голосов
/ 30 апреля 2015

Кажется, вы используете неправильные номера.Целое число хранится в 32 битах памяти со знаком (4 байта), диапазон которых составляет от -2 ^ 31 до 2 ^ 31 = от -2 147 483 648 до 2 147 483 647.Long хранится в 64-битной памяти со знаком (8 байт), чей диапазон составляет от -2 ^ 63 до 2 ^ 63 = -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.

ItemData использует тип данных Integer

Short хранится в 16 битах (2 байта) со знаком, от -32 768 до 32 767.А байт - это байт (8-битный без знака) от 0 до 255.

Если вы хотите хранить двоичные числа (11001000000), преобразуйте их в целое число.Jorge

...