在我的VB类中,我们被要求设置一个由用户条目填充的数组。这些条目是十进制类型,意思是汽油价格。每月有十二个,一个。这些条目应该在列表框中输入和处理时一次显示一个。
我让他们出现但他们没有正常出现。而不是4.55(或其他),条目显示为“Decimal [] Array”(当然减去引号)。
如何让参赛作品正确显示?代码在下面,它非常不完整,因为我只有大约三分之一的项目进展,所以除非你看到像拇指疼痛一样突然出现一些可怕的问题,否则不要大汗淋漓。
Public Class GasPrices
Dim prices(11) As Decimal
Private Sub EnterButton_Click(sender As Object, e As EventArgs) Handles EnterButton.Click
prices(PriceList.Items.Count) = Convert.ToDecimal(PriceText.Text)
PriceText.Clear()
For i = 0 To 11
prices(i) = i
Next i
PriceList.Items.Add(prices)
End Sub
Private Sub PriceList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles PriceList.SelectedIndexChanged
PriceList.Items.Clear()
PriceList.Items.Add(prices)
End Sub
结束班
答案 0 :(得分:1)
您将整个数组添加为一个“条目”。您需要使用语法添加每个条目,就像您在循环中访问prices(i)
的位置一样。
Public Class GasPrices
Private prices(11) As Decimal
Private Sub EnterButton_Click(sender As Object, e As EventArgs) Handles EnterButton.Click
If PriceList.Items.Count < 12 Then
Dim price As Decimal
If Decimal.TryParse(PriceText.Text, System.Globalization.NumberStyles.Currency, Nothing, price) Then
prices(PriceList.Items.Count) = price
PriceList.Items.Add(price)
PriceText.Clear()
PriceText.Focus()
Else
MessageBox.Show("Invalid Price!")
End If
Else
MessageBox.Show("12 entries have already been entered!")
End If
End Sub
Private Sub PriceList_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles PriceList.SelectedIndexChanged
If PriceList.SelectedIndex <> -1 Then
Label1.Text = PriceList.SelectedItem
End If
End Sub
End Class
答案 1 :(得分:0)
这很简单。使用Add
,您可以将数组本身作为单个对象添加到列表框中。列表框的默认行为是为每个条目显示object.ToString
。并且由于对象是一个小数组数组,因此会得到不需要的输出。
如果要将数组的elements
添加到列表,列表框,...,请使用AddRange
方法。