数组在VB.NET中不起作用

时间:2014-03-07 11:53:48

标签: arrays vb.net

 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

每次我点击按钮购买百事可乐,它只是在文本框中说“你买了一个”,它应该说“百事可乐”,但它不起作用。有人有任何想法吗?

3 个答案:

答案 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
相关问题