Reputation: 27
I am building a program that randomly generates a number then this number is linked to a picture, that displays in a picture box. I have one that has a text box below it, and one of the pictures is variable depending on what this text box says, so I used some if and else statements. But I get this error, 'Else' must be preceded by a matching 'If' or 'ElseIf'. There is probably a simple solution to it that I am just not seeing, here is the code.
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
Upvotes: 1
Views: 6290
Reputation: 1
I had the same issue with this code and resolved it:
If buttoncount = 1 Then
buttoncount = 1
ElseIf (chkUnbook.Checked = True) Then
buttoncount = 0
End if
Apparently, you must also place an if before the end if and else if, even though there is one already present ( VB 2010 )
Upvotes: 0
Reputation: 112352
You can also use the If
operator:
TextBox8.Text = If(TextBox14.Text = "Hardline", "5", "6")
Upvotes: 1
Reputation: 32841
When you begin a code block with If
, you must end that code block with End If
.
I don't see End If
in any of your Case
blocks.
Here is an example from MSDN: if you put it all on one line, you don't need the End If
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]
Upvotes: 1
Reputation: 81620
You can't have code after THEN "AND" have an ELSE on a different line:
You code:
If TextBox14.Text = "Hardline" Then TextBox8.Text = "11"
Else TextBox8.Text = "12"
Fix:
If TextBox14.Text = "Hardline" Then
TextBox8.Text = "5"
Else
TextBox8.Text = "6"
End If
or:
If TextBox14.Text = "Hardline" Then TextBox8.Text = "5" Else TextBox8.Text = "6"
or place an underscore at the end:
If TextBox14.Text = "Hardline" Then TextBox8.Text = "11" _
Else TextBox8.Text = "12"
Upvotes: 7