为啥我在 VB 中的代码不起作用? [关闭]
Posted
技术标签:
【中文标题】为啥我在 VB 中的代码不起作用? [关闭]【英文标题】:Why is my code in VB not working? [closed]为什么我在 VB 中的代码不起作用? [关闭] 【发布时间】:2014-01-22 01:52:10 【问题描述】:因此,对于这个程序,任务是为汽车租赁公司创建一个程序。不同种类的汽车由单选按钮选择,汽车租赁成本(每天)乘以租赁天数。我已经按照书本做了所有事情,所以有什么问题?它不断出现我编码的消息框,告诉我我输入的数据不是数字(它是)
Dim decJeepWrangler As Decimal = 55D
Dim decLandRover As Decimal = 125D
Dim decPickup As Decimal = 85D
Dim intDays As Integer
Dim decTotalCost As Decimal
Dim decCost As Decimal
If IsNumeric(txtDays) Then
intDays = Convert.ToInt32(txtDays)
If intDays > 0 Then
If radJeepWrangler.Checked Then
decCost = decJeepWrangler
ElseIf radLandRover.Checked Then
decCost = decLandRover
ElseIf radPickup.Checked Then
decCost = decPickup
End If
decTotalCost = intDays * decCost
lblTotalCost.Text = decTotalCost.ToString("C")
Else
MsgBox("You entered " & intDays.ToString() & ". Enter a positive number", , "Input Error")
txtDays.Text = ""
txtDays.Focus()
End If
Else
MsgBox("Enter how many days you will be renting", , "Input Error")
txtDays.Text = ""
txtDays.Focus()
End If
End Sub
【问题讨论】:
请准确描述您的代码有什么问题。我们不会做猜测工作,这是承包商通常的工作,他们为此收取高额费用。txtDays
的声明未包含在您的帖子中。它是什么?它实际上是文本。等一下!不,因为您调用了它的.Focus()
方法,而字符串没有具有.Focus() 事件。您实际上应该阅读代码。 (调试器也会告诉你这一点;你现在应该学会使用它。)
txtDays 是一个文本框,如果按照命名约定进行的话
【参考方案1】:
我没有足够的声望点来发表评论,所以我不得不添加这个作为答案,但看起来您使用的是 txtDays
而不是 txtDays.Text
开始。
【讨论】:
【参考方案2】:这是你必须做的……
1) Add a TextBox control and name it txtDays.
2) Add a button.
3) Add the code shown below under the button_click event.
Dim decJeepWrangler As Decimal = 55D
Dim decLandRover As Decimal = 125D
Dim decPickup As Decimal = 85D
Dim intDays As Integer
Dim decTotalCost As Decimal
Dim decCost As Decimal
If IsNumeric(txtDays.Text) Then
intDays = Convert.ToInt32(txtDays.Text)
If intDays > 0 Then
If radJeepWrangler.Checked Then
decCost = decJeepWrangler
ElseIf radLandRover.Checked Then
decCost = decLandRover
ElseIf radPickup.Checked Then
decCost = decPickup
End If
decTotalCost = intDays * decCost
lblTotalCost.Text = decTotalCost.ToString("C")
Else
MsgBox("You entered " & intDays.ToString() & ". Enter a positive number", , "Input Error")
txtDays.Text = ""
txtDays.Focus()
End If
Else
MsgBox("Enter how many days you will be renting", , "Input Error")
txtDays.Text = ""
txtDays.Focus()
End If
【讨论】:
【参考方案3】:就像 Macoms01 提到您需要使用 txtDays.Text 从 TextBox 检索输入值。此外,在计算总成本之前,您需要将 decCost 变量初始化为 0 以 OR 开始,编写一个 IF 语句来检查 decCost = null 并在这种情况下设置为 0。
最后,并不是每个人都希望从他们的建议中获得报酬,所以不要听 Neolisk 的意见。我在这里遇到过像他这样的人,他们只是想提供一个简单的答案。他们忘记了,如果有一个简单的答案,人们就不会在这里寻求帮助。
无论如何,如果我的回答对您有任何帮助,请在此处为其他人回答问题。
【讨论】:
【参考方案4】:Dim decJeepWrangler As Decimal = 55D
Dim decLandRover As Decimal = 125D
Dim decPickup As Decimal = 85D
Dim intDays As Integer = 0
Dim decTotalCost As Decimal = 0
Dim decCost As Decimal = 0
'
If Trim(txtDays.text) <> "" Then
If cint(trim(txtDays.text)) > 0 Then
intDays = CInt(txtDays.Text)
If radJeepWrangler.Checked Then
decCost = decJeepWrangler
ElseIf radLandRover.Checked Then
decCost = decLandRover
ElseIf radPickup.Checked Then
decCost = decPickup
End if
if decCost > 0 then
decTotalCost = intDays * decCost
lblTotalCost.Text = decTotalCost.ToString()
Else
msgbox("please select a vehicle", ,"Error")
txtDays.Text = "0"
txtDays.Focus()
End If
Else
MsgBox("Enter how many days you will be renting", , "Error")
txtDays.Text = "0"
txtDays.Focus()
End If
else
MsgBox("Enter how many days you will be renting", , "Error")
txtDays.Text = "0"
txtDays.Focus()
end if
一些错误或错别字直接跳出来,上面的代码应该可以正常工作,请尝试一下。
【讨论】:
以上是关于为啥我在 VB 中的代码不起作用? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 ngfor 指令不起作用,尽管我在 Typescript 类中创建了正确的对象
如果我在函数顶部切换注释行的位置,为啥我的代码不起作用?这是一个记忆召回声明[关闭]