2012-03-12 155 views
0

在VB6.0中,MyCombobox.NewIndex的最大值是多少?它是什麼數據類型?爲什麼我不能將其newIndex設置爲11001000000?我能做什麼如果我無法做到?Combobox.NewIndex屬性的最大值是多少?

謝謝

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 
+0

我已經發布了一個問題的答案,但這段代碼確實有問題嗎? – Deanna 2012-03-12 10:32:22

+0

您不能顯式設置'NewIndex'值爲不同的值。你爲什麼想要?你認爲它會有什麼影響? – MarkJ 2012-03-12 17:16:44

回答

7

the help.NewIndex是返回添加的最後一個項目的索引,並將其設置是沒有意義的只讀屬性。

因爲它是一個整數,所以它的最大(可用)值是32767.當您將第32769個項目添加到組合框中時,索引將包裝爲負值並且不能再使用。

要將任意數據分配給項目,請使用屬於Long的.ItemData屬性,並且可以保存-2,147,483,648 and 2,147,483,647之間的整數值。

+0

感謝您的幫助,但我已將值添加到我的組合中,其NewIndex超過32767.例如:Combo1.addItem(「Test」)Combo1.ItemData(Combo1.NewIndex)= 1991000000和代碼編譯正確。 – odiseh 2012-04-05 09:02:24

+0

該示例設置['ItemData'](http://msdn.microsoft.com/en-us/library/aa235132(v = vs.60).aspx)屬性不同。這是一個長,所以可以從[-2,147,483,648到2,147,483,647](http://msdn.microsoft.com/en-us/library/aa263420(v = vs.60).aspx)保存值。 – Deanna 2012-04-05 10:53:54

0

看來你使用的是錯誤的數字。一個整數存儲在一個帶符號的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使用整數數據類型

短存儲在一個符號的16位(2個字節),從-32,768到32,767。 和一個字節是一個字節(無符號8位),從0到255.

如果要存儲二進制數字(11001000000),請將它們轉換爲整數。 Jorge

相關問題