无法将输出发送到 VB 中的标签
Can't send output to label in VB
我制作的代码片段,以便在检查单个按钮时,整个总数乘以2。方程式为500倍2,而1000正在存储,但我无法显示它不知何故。
代码:
If radMeter.Checked Then
intTotal = CInt(intMeter.ToString("C"))
ElseIf radZone.Checked Then
intTotal = CInt(intParking.ToString("C"))
ElseIf radBlocking.Checked Then
intTotal = CInt(intDriveway.ToString("C"))
ElseIf radHandicap.Checked Then
intTotal = CInt(intHandicap.ToString("C"))
If radRepeat.Checked Then
lblTotal.Text = CStr(2 * CDbl(intTotal.ToString("C")))
End If
End If
'Output
lblTotal.Text = intTotal.ToString("C")
具体在第 13 行 "radRepeat"
在你的最后一行中:
'Output
lblTotal.Text = intTotal.ToString("C")
您用 intTotal 的 current 值覆盖了 lblTotal,您所做的 而不是 乘以 2(即,您覆盖了您所做的在第 13 行)。
解决这个问题的最简单方法是更换
lblTotal.Text = CStr(2 * CDbl(intTotal.ToString("C")))
和
intTotal = 2 * intTotal
仔细检查您的代码 - 您实际上向标签写入了 TWICE(导致您的更改被覆盖,并且从未保存在您的 intTotal 变量中):
If radRepeat.Checked Then
**lblTotal.Text** = CStr(2 * CDbl(intTotal.ToString("C")))
End If
End If
'Output
**lblTotal.Text** = intTotal.ToString("C")
你应该替换:
lblTotal.Text = CStr(2 * CDbl(intTotal.ToString("C")))
有
intTotal = (2 * intTotal)
然后让你的最后一条语句正常写入标签。
如果您尝试不更改 intTotal 中的值,但仍然在标签中显示双倍的金额,那么您应该将标签写入您的 If...Else... 块
您可能想尝试做的是在每个代码块后插入几个中断,以查看代码是否真的存在错误或只是一个简单的逻辑错误。
我可能看到的是,当您检查了单选按钮障碍,并且还检查了单选按钮重复时,代码将计算值 * 2,但在 if then 语句关闭后它会写再次转到 lblTotal 的文本字段,使其看起来好像没有计算。
我当然假设您至少有两个组允许一次检查多个单选按钮。
我建议进行以下修复:
If radRepeat.Checked Then
intTotal = CStr(2 * CDbl(intTotal.ToString("C")))
End If
这样,您的输出将适用于所有先前的 if/then 语句。
编辑:
我意识到这基本上被我上面的评论所涵盖,并进行了一些清理。
如果是我,我会设置一些不同的东西并节省我的击键,在某种意义上,如果你只是使用整数计算,等到输出行转换为字符串、双精度或其他任何东西情况可能是这样。
看起来像这样:
If radMeter.Checked Then
intTotal = intMeter
ElseIf radZone.Checked Then
intTotal = intParking
ElseIf radBlocking.Checked Then
intTotal = intDriveway
ElseIf radHandicap.Checked Then
intTotal = intHandicap
If radRepeat.Checked Then
intTotal = (2 * intTotal)
End If
End If
'Output
lblTotal.Text = intTotal.ToString("C")
当然,前提是这些int(Variables)已经正确引入了。
我制作的代码片段,以便在检查单个按钮时,整个总数乘以2。方程式为500倍2,而1000正在存储,但我无法显示它不知何故。
代码:
If radMeter.Checked Then
intTotal = CInt(intMeter.ToString("C"))
ElseIf radZone.Checked Then
intTotal = CInt(intParking.ToString("C"))
ElseIf radBlocking.Checked Then
intTotal = CInt(intDriveway.ToString("C"))
ElseIf radHandicap.Checked Then
intTotal = CInt(intHandicap.ToString("C"))
If radRepeat.Checked Then
lblTotal.Text = CStr(2 * CDbl(intTotal.ToString("C")))
End If
End If
'Output
lblTotal.Text = intTotal.ToString("C")
具体在第 13 行 "radRepeat"
在你的最后一行中:
'Output
lblTotal.Text = intTotal.ToString("C")
您用 intTotal 的 current 值覆盖了 lblTotal,您所做的 而不是 乘以 2(即,您覆盖了您所做的在第 13 行)。
解决这个问题的最简单方法是更换
lblTotal.Text = CStr(2 * CDbl(intTotal.ToString("C")))
和
intTotal = 2 * intTotal
仔细检查您的代码 - 您实际上向标签写入了 TWICE(导致您的更改被覆盖,并且从未保存在您的 intTotal 变量中):
If radRepeat.Checked Then
**lblTotal.Text** = CStr(2 * CDbl(intTotal.ToString("C")))
End If
End If
'Output
**lblTotal.Text** = intTotal.ToString("C")
你应该替换:
lblTotal.Text = CStr(2 * CDbl(intTotal.ToString("C")))
有
intTotal = (2 * intTotal)
然后让你的最后一条语句正常写入标签。
如果您尝试不更改 intTotal 中的值,但仍然在标签中显示双倍的金额,那么您应该将标签写入您的 If...Else... 块
您可能想尝试做的是在每个代码块后插入几个中断,以查看代码是否真的存在错误或只是一个简单的逻辑错误。
我可能看到的是,当您检查了单选按钮障碍,并且还检查了单选按钮重复时,代码将计算值 * 2,但在 if then 语句关闭后它会写再次转到 lblTotal 的文本字段,使其看起来好像没有计算。
我当然假设您至少有两个组允许一次检查多个单选按钮。
我建议进行以下修复:
If radRepeat.Checked Then
intTotal = CStr(2 * CDbl(intTotal.ToString("C")))
End If
这样,您的输出将适用于所有先前的 if/then 语句。
编辑: 我意识到这基本上被我上面的评论所涵盖,并进行了一些清理。
如果是我,我会设置一些不同的东西并节省我的击键,在某种意义上,如果你只是使用整数计算,等到输出行转换为字符串、双精度或其他任何东西情况可能是这样。
看起来像这样:
If radMeter.Checked Then
intTotal = intMeter
ElseIf radZone.Checked Then
intTotal = intParking
ElseIf radBlocking.Checked Then
intTotal = intDriveway
ElseIf radHandicap.Checked Then
intTotal = intHandicap
If radRepeat.Checked Then
intTotal = (2 * intTotal)
End If
End If
'Output
lblTotal.Text = intTotal.ToString("C")
当然,前提是这些int(Variables)已经正确引入了。