我一直在使用visual basic 2010 express约2周,我正在尝试制作RPG游戏。到目前为止,一切都进展顺利。但我无法让我的标签显示进度条值。可以帮助我吗?
Public Class Form1
Public Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click
Label2.Text = ProgressBar1.Value & ("")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
HouseBuy.show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
HouseSell.show()
Me.Hide()
End Sub
Public Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
Label2.Text = ProgressBar1.Value & ("")
If ProgressBar1.Value = 1000 Then
MsgBox("You cant get any more money")
ElseIf ProgressBar1.Value = 0 Then
MsgBox("You are out of money")
End If
End Sub
Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
mymap.Show()
Me.Hide()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
答案 0 :(得分:2)
将玩家的钱存入变量可能会更好。这样,进度条和标签文本将从变量的值更新,而您不会将玩家的钱存入进度条值。
以下是我可能做到的一个简单示例:
Dim characterMoney As Integer 'Global variable - Player Money
Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_IncreaseMoney.Click
changeMoney(60) 'Increase by 60
End Sub
Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_DecreaseMoney.Click
changeMoney(-60) 'Decrease by 60
End Sub
Sub changeMoney(ByVal valToChange) 'Could change to a function (return true or false)
Dim checkMoneyVal As Integer
checkMoneyVal = (characterMoney + valToChange) 'Check Val after change
If checkMoneyVal > 1000 Or checkMoneyVal < 0 Then 'If after the change
MessageBox.Show("You would have too much or too little money!") 'Its an invalid amount.
Else
'Player has enough money.
characterMoney = characterMoney + valToChange 'Increase/Decrease their money
End If
Label1.Text = characterMoney 'Update the label text
ProgressBar1.Value = characterMoney 'Update the progress value
End Sub
所以在这个例子中。如果你想增加或减少玩家的钱。它将计算变更后的资金。如果它将大于1000或小于零,则不会让更改发生 - 而是返回错误消息。 否则,如果更改后有效,则会增加金额。
一旦发生货币兑换 - 进度条和标签会更新。
答案 1 :(得分:0)
ProgressBar组件(类的实例)有2个属性,您需要: 值 和最大值。 第一个需要初始化的最大属性,第二个增加你的Value属性。