Vb6 Combobox.NewIndex属性的最大值是多少?

Vb6 Combobox.NewIndex属性的最大值是多少?,vb6,combobox,recordset,Vb6,Combobox,Recordset,在VB6.0中,mycombox.NewIndex的最大值是多少?它是什么数据类型?为什么我不能将其newIndex设置为11001000000?如果我不能,我能做什么 多谢各位 Dim ComboItem As String With rsTest .Sort = "ID Asc" .MoveFirst While Not .EOF ComboItem = .Fields("Code") & " - " &

在VB6.0中,mycombox.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
根据,
.NewIndex
是一个只读属性,返回最后添加的项的索引,设置它没有意义

因为它是一个整数,所以它的最大(可用)值是32767。将32769项添加到组合框中时,索引将换行为负值,无法再使用


若要将任意数据分配给项目,请使用长属性,该属性可以容纳介于之间的整数值。

似乎您使用了错误的数字。整数存储在有符号32位内存(4字节)中,其范围为-2^31到2^31=-2147483648到2147483647。Long存储在有符号的64位内存(8字节)中,其范围为-2^63到2^63=-9223372036854775808到9223372036854775807

ItemData使用整数数据类型

Short存储在有符号的16位(2字节)中,从-32768到32767。 一个字节是一个字节(无符号8位),从0到255

如果要存储二进制数字(11001000000),请将其转换为整数。
Jorge

我已经发布了您问题的答案,但此代码是否确实有问题?您不能将
NewIndex
值显式设置为其他值。你为什么要这么做?你认为它会有什么影响?谢谢你的帮助,但我已经为我的组合添加了值,它们的新索引超过32767。例如:Combo1.addItem(“Test”)Combo1.ItemData(Combo1.NewIndex)=1991000000,代码编译正确。该示例正在设置不同的属性。这是一个很长的时间,因此可以保存来自的值。