VB 2010表达Progressbar

时间:2013-10-28 12:20:14

标签: vb.net

我一直在使用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

2 个答案:

答案 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属性。