所以我试图让我的代码工作,这意味着显示价格取决于大小和数量但是当我尝试运行代码并获得价格时,我得到错误
从字符串“Large”到“Double”类型的转换无效。
当我点击我的价格按钮。
Dim large As Integer
Dim total As Integer
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
End Sub
Private Sub PreviewButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PreviewButton.Click
PictureBox1.Image = System.Drawing.Image.FromFile _
("H:\My Pictures\" + ColourComboBox.SelectedItem + "Tshirt.PNG")
PictureBox1.ClientSize = New Size(200, 200)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
str = "The colour chosen is " & ColourComboBox.SelectedItem _
& vbCrLf & " and the size chosen is " & SizeComboBox.SelectedItem
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub SizeComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SizeComboBox.SelectedIndexChanged
small = 10
medium = 12
large = 15
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbuy.Click
total = SizeComboBox.SelectedItem * AmountComboBox.SelectedItem
MessageBox.Show(total)
End Sub
结束班
听起来像这个错误消息:
从字符串“Large”到“Double”类型的转换无效。
发生在这一行(Button2_Click()
sub):
total = SizeComboBox.SelectedItem * AmountComboBox.SelectedItem
两个选定的项似乎都是String值,其中一个等于"Large"
。也许您应该修复检索分配给“大”项的整数值的方式。
VB.NET隐含地将字符串转换为整数 - 只有在没有启用Option Strict的情况下才强烈劝阻(正如Konrad Rudolph所指出的那样) - 但它在这里失败了,因为该值不代表整数。
我建议您使用NumericUpDown作为Amount(数量)输入。您可以设置最小值和最大值。
Private Sub SizeComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SizeComboBox.SelectedIndexChanged
small = 10
medium = 12
large = 15
End Sub
除了表单级变量的值之外,上面的代码实际上什么都不做。组合框中的文本与这些变量无关。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add("small")
ComboBox1.Items.Add("medium")
ComboBox1.Items.Add("large")
End Sub
我将这些项目添加到Form.Load中的组合框中,但这可以在设计时完成。
Private ProductSize As Decimal = 0
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
Select Case ComboBox1.SelectedItem.ToString
Case "small"
ProductSize = 10
Case "medium"
ProductSize = 12
Case "large"
ProductSize = 15
Case Else
MessageBox.Show("Please make a size selection.")
End Select
End Sub
这里我们添加了一个表单级变量来保存所选的大小。
最后完成算法并显示结果。当在Decimal Total上调用.ToString(“C”)时,C告诉它将结果显示为货币。
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim Total = ProductSize * NumericUpDown1.Value
MessageBox.Show(Total.ToString("C"))
End Sub