下拉菜单COMBOX赋值可以是小数码(非LONG型)
Private Sub Combo1_Click()
Text1.Text = Combo1.ItemData(Combo1.ListIndex)
End Sub
Private Sub Form_Load()
Combo1.AddItem "a"
Combo1.ItemData(0) = 9.6
Combo1.AddItem "b"
Combo1.ItemData(1) = 11.5
Combo1.AddItem "c"
Combo1.ItemData(2) = 13.4
Combo1.ListIndex = 2
End Sub
想赋值9.6等 小数的,Text1.Text中显示的都是 10 ,12,这样的整数,,后来知道ItemData(0) 类型 long
自动类型转换,,,想知道怎么解决
我自己要用,肯定选择这种方法(从数组访问数据速度肯定比从对象快)。
如果你的 “ItemData”是数值类型的,可以用相应类型的数组。
用 String类型,则可以记录任意内容。
如果 Combo 的项目数是固定的,可以用固定大小的数组。也可以用动态数组(适应任意情况)。
数组元素就对应Combo相应项目的 ItemData 。
下拉列表选择项目后,按其ListIndex就能从数组中取得相应数据了。
[解决办法]
当把小数赋值给 ItemData 时,系统会将其四舍五入取整。相当于自动加上了 CLng 函数处理。
Combo1.ItemData(0) = "9.6" 的结果与直接赋值小数是一样的。
很多情况下,VB 会自动进行格式转换。