自动售货机项目 VB:货币未按我的意愿显示
Vending Machine Project VB: Money Not Displaying As I Would Like
我正在 VB 做一个自动售货机项目,我对 VB 还很陌生。我用的是Visual Studio 2017。每次我点击一个按钮,我希望钱在文本框中加起来。
例如,如果我单击按钮 10p 一次,然后再次单击它,我希望文本框显示 20p。
我试过在 Visual basic 中使用 += 但它不起作用。我试过谷歌搜索解决方案,但我似乎找不到任何解决方案,所以一如既往,这是我最后的选择。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim total_money As Integer
Dim clicks As Integer
Const pence_sign As String = "p"
clicks += 1
txtMoneyDisplay.Text = (10 * clicks) & pence_sign
我没有无法修复的错误消息。
但是如果我点击 10p 两次,它不会显示为 20p,它会一直显示为 10p,无论我点击多少次,我该如何解决这个问题?
您应该应用的修复方法是将此行 Dim clicks As Integer
移到函数 Sub Button1_Click
之外,使其成为成员变量而不是局部变量。
示例:
Public Class Form1
Dim clicks As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim total_money As Integer
Const pence_sign As String = "p"
clicks += 1
txtMoneyDisplay.Text = (10 * clicks) & pence_sign
简单进一步解释
每次函数运行时都会重新创建局部变量。它们将被分配默认值(在整数花瓶中,这将是 0(零))或您将它们初始化为的任何值。
将声明移到函数外部会将它们变成成员变量。只要包含它们的 class(以及引用 class 的对象)仍然存在,成员变量就会保持它们的值。在这种情况下,表单 class 将在显示表单时保持存在。重新创建class(或重新显示Form)
时,成员变量将被重置
额外
您可能希望在您的应用程序代码中包含一个按钮,用于 return 向他们支付客户的钱,这将转化为一个函数,将 clicks
成员变量设置为 0。这与重新初始化成员变量,将您的应用程序状态重置为与首次加载时相同。
这是一篇可能对您有所帮助的 MSDN 文章:Variable Declaration in Visual Basic
我正在 VB 做一个自动售货机项目,我对 VB 还很陌生。我用的是Visual Studio 2017。每次我点击一个按钮,我希望钱在文本框中加起来。
例如,如果我单击按钮 10p 一次,然后再次单击它,我希望文本框显示 20p。
我试过在 Visual basic 中使用 += 但它不起作用。我试过谷歌搜索解决方案,但我似乎找不到任何解决方案,所以一如既往,这是我最后的选择。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim total_money As Integer
Dim clicks As Integer
Const pence_sign As String = "p"
clicks += 1
txtMoneyDisplay.Text = (10 * clicks) & pence_sign
我没有无法修复的错误消息。
但是如果我点击 10p 两次,它不会显示为 20p,它会一直显示为 10p,无论我点击多少次,我该如何解决这个问题?
您应该应用的修复方法是将此行 Dim clicks As Integer
移到函数 Sub Button1_Click
之外,使其成为成员变量而不是局部变量。
示例:
Public Class Form1
Dim clicks As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim total_money As Integer
Const pence_sign As String = "p"
clicks += 1
txtMoneyDisplay.Text = (10 * clicks) & pence_sign
简单进一步解释
每次函数运行时都会重新创建局部变量。它们将被分配默认值(在整数花瓶中,这将是 0(零))或您将它们初始化为的任何值。
将声明移到函数外部会将它们变成成员变量。只要包含它们的 class(以及引用 class 的对象)仍然存在,成员变量就会保持它们的值。在这种情况下,表单 class 将在显示表单时保持存在。重新创建class(或重新显示Form)
时,成员变量将被重置额外
您可能希望在您的应用程序代码中包含一个按钮,用于 return 向他们支付客户的钱,这将转化为一个函数,将 clicks
成员变量设置为 0。这与重新初始化成员变量,将您的应用程序状态重置为与首次加载时相同。
这是一篇可能对您有所帮助的 MSDN 文章:Variable Declaration in Visual Basic