2013-10-28 49 views
0

我一直在使用視覺基本2010年快遞約2個星期了,現在我試圖做一個RPG遊戲。直到現在,一切都一帆風順。但我無法讓我的標籤顯示進度欄的價值。 smoebody能幫我嗎?VB 2010快遞進度條

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

當你說你不能獲得標籤來顯示進度條的價值是什麼意思。您是否期望每次進度欄更新時都會更新標籤,因爲只需單擊進度欄或標籤即可查看代碼,以便更新代碼。 – Satal

+1

究竟是什麼問題?你在哪裏更新你的進度條的價值屬性? –

回答

0

ProgressBar組件(類的instanse)具有2個化子性質,你需要: 價值 和最大值。 你需要初始化的第一個最大屬性,第二個增加你的Value屬性。

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或小於零,它不會讓更改發生 - 而是返回錯誤消息。 否則,如果改變後有效,那麼它會增加金額。

一旦發生金錢變化 - 進度條和標籤會更新。

+0

查理,當我使用你的changemoney的想法(順便說一句很好!),那麼它不會停止說你會有太多或太少的錢。你有關於如何解決這個問題的想法嗎? – Tuller45

+0

不太清楚你的意思。如果你能給我一個關於你的輸入的例子,那麼我也可以測試它。如果您只想「更新」進度欄和標籤而不實際更改金錢。您可以創建一個名爲「refreshMoney」的新子程序,並使其更新爲Label和progressBar - 無需任何更改。你也可以傳遞值'0'。 (我可以給你一個例子,如果這是你的意思) –

+0

它是不可或缺的改變任何東西。我用它來編寫你寫的第一個代碼。謝謝! – Tuller45