Dim Cans(7) As String
Dim money As Decimal
Public Sub Main()
Cans(0) = "Pepsi"
Cans(1) = "Pepsi MAX"
Cans(2) = "Sprite"
Cans(3) = "Mountain Dew"
Cans(4) = "Fanta"
Cans(5) = "Coca Cola"
Cans(6) = "Coke Diet"
Cans(7) = "Coke Vanilla"
End Sub
Private Sub ButtonPepsi_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPepsi.Click
If money >= 0.8 Then
money = money - 0.8
TextBoxItem.TextAlign = HorizontalAlignment.Center
TextBoxItem.Text = "You brought a " & Cans(0)
TextboxCredit.Text = "£" & money
End If
End Sub
每次我点击按钮购买百事可乐,它只是在文本框中说“你买了一个”,它应该说“百事可乐”,但它不起作用。有人有任何想法吗?
答案 0 :(得分:2)
从不调用Main,这就是为什么你的数组元素都是空字符串。我认为你正在混合控制台和Windows应用程序。您可以在InitializeComponent之后在Sub New中调用Main。或者更好的是,在InitializeComponent之后移动所有代码,以避免混淆。
或者只是声明你的Cans
数组:
Dim Cans() As String = {"Pepsi", ..., "Coke Vanilla"}
然后你根本不需要Main
。
答案 1 :(得分:2)
VB.NET有很多启动应用程序的方法。可以在项目属性中设置使用哪一个。最常见的是:
Sub Main :此处,调用模块中的子 Main 。然后,子应负责启动应该显示的表单。
启动表单:这可能是您正在使用的选项。打开特定表单并向用户显示。没有Sub Main执行。
你如何解决问题?如果要在打开窗口时初始化数组 ,只需使用Form.Load
事件:
Public Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Cans(0) = "Pepsi"
Cans(1) = "Pepsi MAX"
...
End Sub
答案 2 :(得分:0)
试试这个,
Private Sub ButtonPepsi_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPepsi.Click
Main()
If money >= 0.8 Then
money = money - 0.8
TextBoxItem.TextAlign = HorizontalAlignment.Center
TextBoxItem.Text = "You brought a " & Cans(0)
TextboxCredit.Text = "£" & money
End If
End Sub