我正在构建一个随机生成数字的程序,然后这个数字链接到一个图片,显示在图片框中。我有一个在它下面有一个文本框,其中一个图片是可变的,具体取决于这个文本框的内容,所以我使用了一些if和else语句。但我得到这个错误,'Else'必须先匹配'If'或'ElseIf'。可能有一个简单的解决方案,我只是没有看到,这是代码。
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 :(得分:7)
在“AND”在另一行上有一个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 TextBox14.Text = "Hardline" Then TextBox8.Text = "11" _
Else TextBox8.Text = "12"
答案 1 :(得分:1)
当您使用If
开始代码块时,必须使用End If
结束该代码块。
我没有在End If
个阻止中看到Case
。
以下是example from MSDN:如果您将其全部放在一行,则不需要End If
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
-OR -
If condition Then [ statements ] [ Else [ elsestatements ] ]
答案 2 :(得分:1)
您还可以使用If
运算符:
TextBox8.Text = If(TextBox14.Text = "Hardline", "5", "6")
答案 3 :(得分:0)
我对此代码有同样的问题并解决了它:
If buttoncount = 1 Then
buttoncount = 1
ElseIf (chkUnbook.Checked = True) Then
buttoncount = 0
End if
显然,你必须在结束之前放置一个if if,否则即使有一个已存在(VB 2010)