我正在尝试使用单选按钮计算提示并使用它们来选择百分比,但变量“tip”不会转移到下一个sub并且lblTip.text保持为0
这是我的代码:
Public Class Form1
Dim tip As Double
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnDisplay_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDisplay.Click
Select Case True
Case rbtnTen.Checked
tip = 0.1
Case rbtnFifteen.Checked
tip = 0.15
Case rbtnTwenty.Checked
tip = 0.2
End Select
End Sub
Private Sub btnCalcTip_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCalcTip.Click
lblTip.Text = Val(txtBill.Text) * tip
End Sub
End Class
答案 0 :(得分:1)
原样,你的代码运行正常,但有几件事......
至于为什么你只得到0,我能够使用你现有的代码复制这种行为,通过以下三个中的一个......
假设我在txtBill中放了一个值,选择一个tip选项并按下btnDisplay,我得到一个值。
我会介入并试图跟踪变量中的值以查看发生了什么。您也可以让btnDisplay和btnCalc一次完成所有工作(验证是否已选择了提示量,并进行计算并显示结果)。单击两个按钮没有意义。
答案 1 :(得分:0)
你试过了吗?
lblTip.Text = CStr(CDbl(txtBill.Text) * tip)
如何使用ElseIf语句而不是您的case语句:
If rbtnTen.Checked Then
tip = 0.1
ElseIf rbtnFifteen.Checked Then
tip = 0.15
ElseIf rbtnTwenty.Checked Then
tip = 0.2
EndIf
答案 2 :(得分:0)
通常不推荐使用Val()(在i18n代码中尤其是)。它是Visual Basic(pre .Net)的延续,它在解析值时会创建所有类型的时髦数据。建议首先清理字符串然后解析它,即剥离美元符号,然后将值解析为单个/双精度。
有关Val()的更多信息,请查看corresponding MSDN page。