2013-01-14 39 views
0

大家好,我有一個在vb.net中製作的賓果遊戲。我的聲音記錄在我的D:文件夾中。我每次播放一個數字和字母時都會播放它,但是每當我關閉遊戲窗體然後從菜單中再次開始一個新遊戲,聲音就不再播放了。該程序確實經歷了我製作的聲音功能但它不會播放聲音。這裏是我的代碼:重新打開表單時聲音不會彈出

Sub sound() 
    If lblletter.Text <> "" And lblNumber.Text <> "" And lbllang.Text = "English" Then 
     Dim sound As String = "D:\BINGO BONANZA\ENGLISH\" + lblletter.Text + " " + lblNumber.Text + ".wav" 
     If My.Computer.FileSystem.FileExists(sound) Then 
      My.Computer.Audio.Play(sound, AudioPlayMode.Background) 
     Else 
      MsgBox("No sound file for this") 
     End If 
    ElseIf lblletter.Text <> "" And lblNumber.Text <> "" And lbllang.Text = "English" Then 
     Dim sound As String = "D:\BINGO BONANZA\FILIPINO\" + lblletter.Text + " " + lblNumber.Text + ".wav" 
     If My.Computer.FileSystem.FileExists(sound) Then 
      My.Computer.Audio.Play(sound, AudioPlayMode.Background) 
     Else 
      MsgBox("No sound file for this") 
     End If 
    End If 
End Sub 
+1

它將永遠不會進入else if塊,因爲它具有與第一個條件相同的條件。另外,在那裏放置一個斷點,看看發生了什麼。逐行瀏覽它,看看是否有任何東西突然出現在你身上。 –

+0

我已經解決了我的問題..它不需要對我的代碼做任何事情。 :) – Ley47

回答

0

我看到幾個問題,你可以修復...你的lbllang.Text是兩個語句相同。我認爲你先給「第一」和「菲律賓」換上最後一個。我已經提供了一些你可以做的改變......我沒有看到你甚至從中得到了什麼,因爲這兩個陳述將是真實的,你說如果它等於這樣做,並且elseif做同樣的事情... ?

Private Sub sound() 
    If lblletter.Text <> "" And lblNumber.Text <> "" And lbllang.Text = "English" Then 
    Dim sound As String = "D:\BINGO BONANZA\ENGLISH\" + lblletter.Text + " " + lblNumber.Text + ".wav" 
    If My.Computer.FileSystem.FileExists(sound) Then 
     My.Computer.Audio.Play(sound, AudioPlayMode.Background) 
    Else 
     MsgBox("No sound file for this") 
    End If 
    Else 
    Dim sound As String = "D:\BINGO BONANZA\FILIPINO\" + lblletter.Text + " " + lblNumber.Text + ".wav" 
    If My.Computer.FileSystem.FileExists(sound) Then 
     My.Computer.Audio.Play(sound, AudioPlayMode.Background) 
    Else 
     MsgBox("No sound file for this") 
    End If 
    End If 
End Sub 

如果第一個條件不符合,它會執行else ...給這個試試看,讓我知道它是否適用於你。此外,在「Private Sub sound」上設置一箇中斷點並按下「F11」來逐步檢查您的條件...

0

你知道現在怎麼了,爲了你的方便,這裏是一個稍微簡潔一點的othadox方法代碼:

Private Sub PlaySound() 

If (string.IsNullOrEmpty(lblletter.Text) Or string.IsNullOrEmpty(lblNumber.Text)) Then return 

Dim soundFile As String = String.Format("D:\BINGO BONANZA\{0}\{1} {2}.wav",lbllang.Text, lblletter.Text, lblNumber.Text) 

If My.Computer.FileSystem.FileExists(soundFile) Then 
    My.Computer.Audio.Play(soundFile, AudioPlayMode.Background) 
Else 
    MessageBox.Show("No sound found for file: " & soundFile) 
End If 
End Sub 
0

我已經解決了我的問題..它不需要對我的代碼做任何事情。傳遞的語言有時沒有價值。感謝您的時間無論如何.. :)

相關問題