VB自动售货机项目问题:金额无法按预期显示
解决VB自动售货机金额累加问题
嘿,我一眼就看出问题出在哪啦!你现在的代码里,clicks和total_money是在按钮点击事件内部声明的局部变量——每次你点击按钮,这个方法都会重新执行一遍,这两个变量会被重新初始化为0,所以不管点多少次,clicks都会被重置后再加1,结果永远是1,自然文本框只显示10p啦。
修复方案:把变量移到类级别
你需要把这两个变量的声明移到Form1类的顶部,作为类的私有成员,这样它们的值就能在多次点击之间被保留下来。修改后的代码如下:
Public Class Form1 ' 把变量移到类级别,作为Form1的私有成员 Private clicks As Integer = 0 Private total_money As Integer = 0 Const pence_sign As String = "p" Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click clicks += 1 total_money = 10 * clicks txtMoneyDisplay.Text = total_money & pence_sign End Sub End Class
更简洁的写法(直接累加金额)
其实你完全可以不用clicks变量,直接对total_money进行累加,逻辑更直观:
Public Class Form1 Private total_money As Integer = 0 Const pence_sign As String = "p" Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 每次点击直接加10便士 total_money += 10 txtMoneyDisplay.Text = total_money & pence_sign End Sub End Class
这样修改后,每次点击按钮,total_money都会保留之前的数值并累加10,文本框就能正确显示累计金额啦~
内容的提问来源于stack exchange,提问作者BreakingMyBrain
相关产品推荐
相关产品推荐

