2012-02-18 34 views
1

我正在構建一個隨機生成一個數字的程序,然後將這個數字鏈接到一個圖片,並顯示在圖片框中。我有一個在它下面有一個文本框,其中一個圖片是可變的,這取決於這個文本框所說的,所以我使用了一些if和else語句。但是我得到這個錯誤,'Else'必須在前面匹配'If'或'ElseIf'。可能有一個簡單的解決方案,我只是沒有看到,這裏是代碼。If和其他語句在Visual Basic中的問題

Private Sub Button9_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Timer1.Start() 
    Dim key As Integer 
    key = (Rnd() * 3) 
    Select Case key 
     Case 1 
      Label14.Text = "Assault" 
     Case 2 
      Label14.Text = "Support" 
     Case 3 
      Label14.Text = "Specialist" 
    End Select 
    If Label14.Text = "Assault" Then 
     Timer1.Start() 
     Dim key1 As Integer 
     key1 = (Rnd() * 15) 
     Select Case key1 
      Case 1 
       PictureBox10.Image = My.Resources.assault_1 
       TextBox7.Text = "AC130" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "11" 
       Else TextBox8.Text = "12" 
      Case 2 
       PictureBox10.Image = My.Resources.assault_2 
       TextBox7.Text = "Care Package" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "3" 
       Else TextBox8.Text = "4" 
      Case 3 
       PictureBox10.Image = My.Resources.assault_3 
       TextBox7.Text = "Juggernaut" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "14" 
       Else TextBox8.Text = "15" 
      Case 4 
       PictureBox10.Image = My.Resources.assault_4 
       TextBox7.Text = "Attack Helicopter" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "6" 
       Else TextBox8.Text = "7" 
      Case 5 
       PictureBox10.Image = My.Resources.assault_5 
       TextBox7.Text = "Pave Low" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "11" 
       Else TextBox8.Text = "12" 
      Case 6 
       PictureBox10.Image = My.Resources.assault_6 
       TextBox7.Text = "IMS" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "4" 
       Else TextBox8.Text = "5" 
      Case 7 
       PictureBox10.Image = My.Resources.assault_7 
       TextBox7.Text = "Assault Drone" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "9" 
       Else TextBox8.Text = "10" 
      Case 8 
       PictureBox10.Image = My.Resources.assault_8 
       TextBox7.Text = "Strafe Run" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "8" 
       Else TextBox8.Text = "9" 
      Case 9 
       PictureBox10.Image = My.Resources.assault_9 
       TextBox7.Text = "AH-6 Overwatch" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "8" 
       Else TextBox8.Text = "9" 
      Case 10 
       PictureBox10.Image = My.Resources.assault_10 
       TextBox7.Text = "Osprey Gunner" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "16" 
       Else TextBox8.Text = "15" 
      Case 11 
       PictureBox10.Image = My.Resources.assault_11 
       TextBox7.Text = "Percision Airstrike" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "5" 
       Else TextBox8.Text = "6" 
      Case 12 
       PictureBox10.Image = My.Resources.assault_12 
       TextBox7.Text = "Predator Missile" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "4" 
       Else TextBox8.Text = "5" 
      Case 13 
       PictureBox10.Image = My.Resources.assault_13 
       TextBox7.Text = "Reaper" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "8" 
       Else TextBox8.Text = "9" 
      Case 14 
       PictureBox10.Image = My.Resources.assault_14 
       TextBox7.Text = "Sentry Gun" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "4" 
       Else TextBox8.Text = "5" 
      Case 15 
       PictureBox10.Image = My.Resources.assault_15 
       TextBox7.Text = "Assault UAV" 
       If TextBox14.Text = "Hardline" Then TextBox8.Text = "2" 
       Else TextBox8.Text = "3" 

     End Select 
    End If 
End Sub 
+0

請縮短未來的問題的示例代碼。 – usr 2012-02-18 21:52:30

回答

7

你不能有代碼,那麼後 「和」 不同的線路上有一個ELSE:

您代碼:

If TextBox14.Text = "Hardline" Then TextBox8.Text = "11" 
    Else TextBox8.Text = "12" 

修復:

If TextBox14.Text = "Hardline" Then 
    TextBox8.Text = "5" 
Else 
    TextBox8.Text = "6" 
End If 

或:

If TextBox14.Text = "Hardline" Then TextBox8.Text = "5" Else TextBox8.Text = "6" 

或放置在所述端的下劃線:當你開始If碼塊

If TextBox14.Text = "Hardline" Then TextBox8.Text = "11" _ 
    Else TextBox8.Text = "12" 
+0

感謝您的幫助:) – hammy78 2012-02-18 21:53:37

1

,必須結束該碼塊以End If

我沒有在您的任何Case塊中看到End If

下面是一個example from MSDN:如果你把它全部在一行上,你不需要End If

If condition [ Then ] 
    [ statements ] 
[ ElseIf elseifcondition [ Then ] 
    [ elseifstatements ] ] 
[ Else 
    [ elsestatements ] ] 
End If 

- 或 -

If condition Then [ statements ] [ Else [ elsestatements ] ] 
1

您還可以使用If操作:

TextBox8.Text = If(TextBox14.Text = "Hardline", "5", "6") 
+0

建議避免使用IIF *函數*而是使用IF *運算符*(如果VB支持它的版本,那就是) – 2012-02-20 14:50:47

+0

好的,我是ac#程序員,仍在使用VS 2008 。我只知道具有兩個參數(C#??運算符)的If-運算符的版本。謝謝你的提示。 – 2012-02-20 15:31:34

0

我對此代碼有同樣的問題,並解決它:

If buttoncount = 1 Then 
     buttoncount = 1 
ElseIf (chkUnbook.Checked = True) Then 
     buttoncount = 0 
End if 

顯然,你還必須放置一個,如果年底前if和else if,即使有一個已經存在(VB 2010)