Keep track of wins in my tic tac toe application VB 2010 - vb.net

I've written a Tic Tac Toe application in VB 2010 and it runs well, but I'd like to be able to keep track of the number of wins for X's and O's and/or Player 1 and Player 2. I've tried adding in do while loops, but I'm pretty ignorant as to how to correctly implement them and I'm unsure if that's even the correct way to track wins.. Any help would be greatly appreciated! Here's my code:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub btn11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn11.Click
'clos the form
Me.Close()
End Sub
Private Sub btn10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn10.Click
btn1.Enabled = True
btn2.Enabled = True
btn3.Enabled = True
btn4.Enabled = True
btn5.Enabled = True
btn6.Enabled = True
btn7.Enabled = True
btn8.Enabled = True
btn9.Enabled = True
btn1.Text = ""
btn2.Text = ""
btn3.Text = ""
btn4.Text = ""
btn5.Text = ""
btn6.Text = ""
btn7.Text = ""
btn8.Text = ""
btn9.Text = ""
End Sub
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
If lbl2.Text = "X" Then
btn1.Text = "X"
lbl2.Text = "O"
Else
btn1.Text = "O"
lbl2.Text = "X"
End If
btn1.Enabled = False
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click
If lbl2.Text = "X" Then
btn2.Text = "X"
lbl2.Text = "O"
Else
btn2.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn2.Enabled = False
End Sub
Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click
If lbl2.Text = "X" Then
btn3.Text = "X"
lbl2.Text = "O"
Else
btn3.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn3.Enabled = False
End Sub
Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn4.Click
If lbl2.Text = "X" Then
btn4.Text = "X"
lbl2.Text = "O"
Else
btn4.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn4.Enabled = False
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn5.Click
If lbl2.Text = "X" Then
btn5.Text = "X"
lbl2.Text = "O"
Else
btn5.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn5.Enabled = False
End Sub
Private Sub btn6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn6.Click
If lbl2.Text = "X" Then
btn6.Text = "X"
lbl2.Text = "O"
Else
btn6.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn6.Enabled = False
End Sub
Private Sub btn7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn7.Click
If lbl2.Text = "X" Then
btn7.Text = "X"
lbl2.Text = "O"
Else
btn7.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn7.Enabled = False
End Sub
Private Sub btn8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn8.Click
If lbl2.Text = "X" Then
btn8.Text = "X"
lbl2.Text = "O"
Else
btn8.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn8.Enabled = False
End Sub
Private Sub btn9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn9.Click
If lbl2.Text = "X" Then
btn9.Text = "X"
lbl2.Text = "O"
Else
btn9.Text = "O"
lbl2.Text = "X"
End If
Call win()
btn9.Enabled = False
End Sub
Private Sub win()
If btn1.Text = "X" And btn2.Text = "X" And btn3.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn4.Text = "X" And btn5.Text = "X" And btn6.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn7.Text = "X" And btn8.Text = "X" And btn9.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "X" And btn4.Text = "X" And btn7.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn2.Text = "X" And btn5.Text = "X" And btn8.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn3.Text = "X" And btn6.Text = "X" And btn9.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "X" And btn5.Text = "X" And btn9.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn3.Text = "X" And btn5.Text = "X" And btn7.Text = "X" Then
lbl2.Text = "X wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "O" And btn2.Text = "O" And btn3.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn4.Text = "O" And btn5.Text = "O" And btn6.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn7.Text = "O" And btn8.Text = "O" And btn9.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "O" And btn4.Text = "O" And btn7.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn2.Text = "O" And btn5.Text = "O" And btn8.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn3.Text = "O" And btn6.Text = "O" And btn9.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "O" And btn5.Text = "O" And btn9.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn3.Text = "O" And btn5.Text = "O" And btn7.Text = "O" Then
lbl2.Text = "O wins"
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
End Sub
End Class

Declare Variables in your Class and keep track of the wins using those variables. By keeping them in the Class, as opposed to your Win() Method, they will not be reset to 0 the next time someone clicks a button that calls Win().
Private m_intPlayerOneWins As Integer = 0
Private m_intPlayerTwoWins As Integer = 0
Then in your Win() Method:
'If X Wins
m_intPlayerOneWins += 1
Or
'If O Wins
m_intPlayerTwoWins += 1

Related

Word VBA macro working on some computers but not other

I've written a pretty simple Word macro to hide different parts of a form based on a checkbox made at the beginning of the form. It's only working on some people's computers but not others - it's uploaded to our document server and then users download it out.
Specifically, affected users are able to click a checkbox and the macro will disable the other checkboxes, but the bookmarks remain visible. No error shows up, it just doesn't happen.
The file is downloaded correctly (.docm) and when I poke around in affected users' VBA code, nothing seems to be amiss. I haven't been able to replicate the error myself.
Below is the macro. Any help would be appreciated, as this supports a fairly important business process.
'Plan
Private Sub CheckBox1_Click()
If CheckBox2.Enabled = True Then
CheckBox2.Enabled = False
CheckBox3.Enabled = False
CheckBox4.Enabled = False
CheckBox5.Enabled = False
Else:
CheckBox2.Enabled = True
CheckBox3.Enabled = True
CheckBox4.Enabled = True
CheckBox5.Enabled = True
End If
Bookmarks("CAPA_Plan_And_Add").Range.Font.Hidden = CheckBox1.Value
End Sub
'Plan Addendum
Private Sub CheckBox2_Click()
If CheckBox1.Enabled = True Then
CheckBox1.Enabled = False
CheckBox3.Enabled = False
CheckBox4.Enabled = False
CheckBox5.Enabled = False
Else:
CheckBox1.Enabled = True
CheckBox3.Enabled = True
CheckBox4.Enabled = True
CheckBox5.Enabled = True
End If
Bookmarks("CAPA_Plan_And_Add").Range.Font.Hidden = CheckBox2.Value
End Sub
'Execution
Private Sub CheckBox3_Click()
If CheckBox2.Enabled = True Then
CheckBox1.Enabled = False
CheckBox2.Enabled = False
CheckBox4.Enabled = False
CheckBox5.Enabled = False
Else:
CheckBox1.Enabled = True
CheckBox2.Enabled = True
CheckBox4.Enabled = True
CheckBox5.Enabled = True
End If
Bookmarks("CAPA_Execution").Range.Font.Hidden = CheckBox3.Value
End Sub
'Extension
Private Sub CheckBox4_Click()
If CheckBox3.Enabled = True Then
CheckBox1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False
CheckBox5.Enabled = False
Else:
CheckBox1.Enabled = True
CheckBox2.Enabled = True
CheckBox3.Enabled = True
CheckBox5.Enabled = True
End If
Bookmarks("CAPA_Extension").Range.Font.Hidden = CheckBox4.Value
Bookmarks("CAPA_Extension_2").Range.Font.Hidden = CheckBox4.Value
End Sub
'Cancellation
Private Sub CheckBox5_Click()
If CheckBox4.Enabled = True Then
CheckBox1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False
CheckBox4.Enabled = False
Else:
CheckBox1.Enabled = True
CheckBox2.Enabled = True
CheckBox3.Enabled = True
CheckBox4.Enabled = True
End If
Bookmarks("CAPA_Cancellation").Range.Font.Hidden = CheckBox5.Value
Bookmarks("CAPA_Cancellation_2").Range.Font.Hidden = CheckBox5.Value
End Sub
'Effectiveness Check Yes
Private Sub CheckBox6_Click()
If CheckBox7.Enabled = True Then
CheckBox7.Enabled = False
Else:
CheckBox7.Enabled = True
End If
End Sub
'Effectiveness Check No
Private Sub CheckBox7_Click()
If CheckBox6.Enabled = True Then
CheckBox6.Enabled = False
Else:
CheckBox6.Enabled = True
End If
Bookmarks("Effectiveness_Check").Range.Font.Hidden = CheckBox7.Value
End Sub
Private Sub CheckBox9_Click()
End Sub
There are a few things wrong with this code logical & syntax wise.
Logical
Private Sub CheckBox1_Click()
If CheckBox2.Enabled = True Then
It doesn't make any sense to me why you are basing what checkboxes are Enabled based on a different checkbox than the one which was clicked; specifically without regard to the state of the checkbox that was clicked. This looks like an ugly work around for not understanding how to initialize and properly control event clicks.
Syntactically
An If Statement looks like this:
If condition Then
' Do something if true
End If
An If-Else statement is formatted like this:
If condition Then
' Do something if true
Else
' Do something else
End if
Labels, used in {On Error} Goto Label statements are formatted with a colon after a name
On Error GoTo ErrorHandler
' Some code that might produce an error
ErrorHandler:
' More code (to deal with errors)
So what you have is a normal If-Statement (without an Else component, since it has a colon after it Else:) which should enable all checkboxes.
If CheckBox2.Enabled = True Then
CheckBox2.Enabled = False
CheckBox3.Enabled = False
CheckBox4.Enabled = False
CheckBox5.Enabled = False
Else:
CheckBox2.Enabled = True
CheckBox3.Enabled = True
CheckBox4.Enabled = True
CheckBox5.Enabled = True
End If
[TL;DR]
Just remove the colon after the Else statements

Form1_load code not working when starting the program

I have written all mode code out correctly but when the program runs it does work in the program! I do not know the issue here and was hoping an expert here on VB.net could help out as I have only taken one class of programming in my life...
It is a tic tac toe game for anyone wondering.
I have tried everything I've seen on here and other websites.
Also, the point of the code is so when someone wins it is supposed to display a message box saying they won and then add 1 to the text box in the top left or right.
Here is some code from the form_load
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Generate Random Start
If TurnResult = 1 Then
lblPlayerTurn.Text = "Red Player's Turn"
End If
If TurnResult = 2 Then
lblPlayerTurn.Text = "Blue Player's Turn"
End If
'Blue Winners
If btn1.Text = "X" And btn5.Text = "X" And btn9.Text = "X" Then
MsgBox("Blue Player Wins!")
txtBlue.Text += 1
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "X" And btn2.Text = "X" And btn3.Text = "X" Then
MsgBox("Blue Player Wins!")
txtBlue.Text += 1
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn4.Text = "X" And btn5.Text = "X" And btn6.Text = "X" Then
MsgBox("Blue Player Wins!")
txtBlue.Text += 1
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn7.Text = "X" And btn8.Text = "X" And btn9.Text = "X" Then
MsgBox("Blue Player Wins!")
txtBlue.Text += 1
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If
If btn1.Text = "X" And btn4.Text = "X" And btn7.Text = "X" Then
MsgBox("Blue Player Wins!")
txtBlue.Text += 1
btn1.Enabled = False
btn2.Enabled = False
btn3.Enabled = False
btn4.Enabled = False
btn5.Enabled = False
btn6.Enabled = False
btn7.Enabled = False
btn8.Enabled = False
btn9.Enabled = False
End If

if else Condition in vb.net

i want the user select duration before he/she continue click the checkbox(Cagayan) how to do that?
this is my code
Private Sub Rcagayan_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cagayan.CheckedChanged
If Duration.Text = "" Then
MessageBox.Show("Please Select Duration", "WARNING", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End if
If Cagayan.Checked = False Then
Abulug.Checked = False
Allacapan.Checked = False
Alcala.Checked = False
Amulung.Checked = False
Aparri.Checked = False
Baggao.Checked = False
Ballesteros.Checked = False
Buguey.Checked = False
Camal.Checked = False
Claveria.Checked = False
Enrile.Checked = False
Gattaran.Checked = False
Gonzaga.Checked = False
Iguig.Checked = False
Lasam.Checked = False
Lallo.Checked = False
Pamplona.Checked = False
Penablanca.Checked = False
Piat.Checked = False
Rizal.Checked = False
SantaAna.Checked = False
StaTere.Checked = False
Santonino.Checked = False
Praxedes.Checked = False
Sanchez.Checked = False
Solana.Checked = False
Tuao.Checked = False
Tugue.Checked = False
btnUncheckedckbExpectedFalse.PerformClick()
btnAdvicedUnchecked.PerformClick()
Me.btncagayan.PerformClick()
Me.btnTstmFormat.PerformClick()
End If
End Sub
You have to add exit sub at the end of your first if block...
Private Sub Rcagayan_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cagayan.CheckedChanged
If Duration.Text = "" Then
MessageBox.Show("Please Select Duration", "WARNING", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
exit sub
End if
If Cagayan.Checked = False Then
Abulug.Checked = False
Allacapan.Checked = False
Alcala.Checked = False
Amulung.Checked = False
Aparri.Checked = False
Baggao.Checked = False
Ballesteros.Checked = False
Buguey.Checked = False
Camal.Checked = False
Claveria.Checked = False
Enrile.Checked = False
Gattaran.Checked = False
Gonzaga.Checked = False
Iguig.Checked = False
Lasam.Checked = False
Lallo.Checked = False
Pamplona.Checked = False
Penablanca.Checked = False
Piat.Checked = False
Rizal.Checked = False
SantaAna.Checked = False
StaTere.Checked = False
Santonino.Checked = False
Praxedes.Checked = False
Sanchez.Checked = False
Solana.Checked = False
Tuao.Checked = False
Tugue.Checked = False
btnUncheckedckbExpectedFalse.PerformClick()
btnAdvicedUnchecked.PerformClick()
Me.btncagayan.PerformClick()
Me.btnTstmFormat.PerformClick()
End If
End Sub

Microsoft Visual Basic (Checkbox relationships)

I have a problem :)
I am working in Microsoft Word 2013 right now. I made four checkboxes: "A", "B"
, "C" and "D". My wish is that there is a relationship between the checkboxes. So if I check "A" then I want that "B" and "C" are also automatically checked. And if I check "B" I want that "C" is also automatically checked. When I check "C" then I want that just "C" is checked. And if I check "D" then only "D" needs to be checked.
I already found the next code:
Sub SelectAll_Click()
Dim CB As CheckBox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
CB.Value = ActiveSheet.CheckBoxes("Check Box 1").Value
End If
Next CB
End Sub
Sub Mixed_State()
Dim CB As CheckBox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name And CB.Value <> ActiveSheet.CheckBoxes("Check Box 1").Value And ActiveSheet.CheckBoxes("Check Box 1").Value <> 2 Then
ActiveSheet.CheckBoxes("Check Box 1").Value = 2
Exit For
Else
ActiveSheet.CheckBoxes("Check Box 1").Value = CB.Value
End If
Next CB
End Sub
This works for me in Excel, but not in Word (I get an error). But the main issue is that by this code all of the checkboxes are selected. That's not exactly what
I want.
I hope it is clear what I'm asking for and I hope you can help me out.
Thanks!
Kind regards.
Here is the answer (code), for anyone else in the same situation. The checkboxes have a lot of relationships with each other. I have 13 checkboxes.
Private Sub Q1A_Click()
If Q1A.Value = True Then
Q1B.Value = True
Q1C.Value = True
End If
End Sub
Private Sub Q1B_Click()
If Q1B.Value = True Then
Q1C.Value = True
ElseIf Q1B.Value = False Then
Q1A.Value = False
End If
End Sub
Private Sub Q1C_Click()
If Q1C.Value = False Then
Q1B.Value = False
Q1A.Value = False
Q1D.Value = False
End If
End Sub
Private Sub Q1D_Click()
If Q1D.Value = True Then
Q1C.Value = True
End If
End Sub
Private Sub Q1E_Click()
If Q1E.Value = True Then
Q1F.Value = True
Q1G.Value = True
Q1H.Value = True
Q1I.Value = True
Q1J.Value = True
End If
End Sub
Private Sub Q1F_Click()
If Q1F.Value = True Then
Q1G.Value = True
ElseIf Q1F.Value = False Then
Q1E.Value = False
End If
End Sub
Private Sub Q1G_Click()
If Q1G.Value = False Then
Q1F.Value = False
ElseIf Q1G.Value = False Then
Q1E.Value = False
End If
End Sub
Private Sub Q1H_Click()
If Q1H.Value = True Then
Q1I.Value = True
Q1J.Value = True
ElseIf Q1H.Value = False Then
Q1E.Value = False
End If
End Sub
Private Sub Q1I_Click()
If Q1I.Value = True Then
Q1J.Value = True
ElseIf Q1I.Value = False Then
Q1H.Value = False
Q1E.Value = False
End If
End Sub
Private Sub Q1J_Click()
If Q1J.Value = False Then
Q1I.Value = False
Q1H.Value = False
Q1E.Value = False
End If
End Sub
Private Sub Q2A_Click()
If Q2A.Value = True Then
Q2B.Value = True
Q2C.Value = True
End If
End Sub
Private Sub Q2B_Click()
If Q2B.Value = True Then
Q2C.Value = True
ElseIf Q2B.Value = False Then
Q2A.Value = False
End If
End Sub
Private Sub Q2C_Click()
If Q2C.Value = False Then
Q2B.Value = False
Q2A.Value = False
End If
End Sub
Private Sub Q1A_Click()
If Q1A.Value = True Then
Q1B.Value = True
Q1C.Value = True
End If
End Sub
Private Sub Q1B_Click()
If Q1B.Value = True Then
Q1C.Value = True
ElseIf Q1B.Value = False Then
Q1A.Value = False
End If
End Sub
Private Sub Q1C_Click()
If Q1C.Value = False Then
Q1B.Value = False
Q1A.Value = False
Q1D.Value = False
End If
End Sub
Private Sub Q1D_Click()
If Q1D.Value = True Then
Q1C.Value = True
End If
End Sub
Private Sub Q1E_Click()
If Q1E.Value = True Then
Q1F.Value = True
Q1G.Value = True
Q1H.Value = True
Q1I.Value = True
Q1J.Value = True
End If
End Sub
Private Sub Q1F_Click()
If Q1F.Value = True Then
Q1G.Value = True
ElseIf Q1F.Value = False Then
Q1E.Value = False
End If
End Sub
Private Sub Q1G_Click()
If Q1G.Value = False Then
Q1F.Value = False
ElseIf Q1G.Value = False Then
Q1E.Value = False
End If
End Sub
Private Sub Q1H_Click()
If Q1H.Value = True Then
Q1I.Value = True
Q1J.Value = True
ElseIf Q1H.Value = False Then
Q1E.Value = False
End If
End Sub
Private Sub Q1I_Click()
If Q1I.Value = True Then
Q1J.Value = True
ElseIf Q1I.Value = False Then
Q1H.Value = False
Q1E.Value = False
End If
End Sub
Private Sub Q1J_Click()
If Q1J.Value = False Then
Q1I.Value = False
Q1H.Value = False
Q1E.Value = False
End If
End Sub
Private Sub Q2A_Click()
If Q2A.Value = True Then
Q2B.Value = True
Q2C.Value = True
End If
End Sub
Private Sub Q2B_Click()
If Q2B.Value = True Then
Q2C.Value = True
ElseIf Q2B.Value = False Then
Q2A.Value = False
End If
End Sub
Private Sub Q2C_Click()
If Q2C.Value = False Then
Q2B.Value = False
Q2A.Value = False
End If
End Sub

VB ComboBox Requires 2 Mouse Clicks to Select Index?

For some reason with this combobox I have in my code, when I run the program, it does not change the Selected Index with one mouse click. Instead, I have to select the drop down of the combo box again, and then select the index. Any ideas on what is going on here? Here is my code, I've tinkered with it for hours.
Public Class Form1
'Mod-level variable
Dim TransactionList As New List(Of Transaction)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Text = "Mike Smith's Bank Account"
Lb1.Visible = False
Lb2.Visible = False
Lb4.Visible = False
Tb1.Visible = False
Tb2.Visible = False
SubmitTransactionButton.Visible = False
TransactionListBox.Visible = False
End Sub
Private Sub Cb1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Cb1.SelectedIndexChanged
If Tb1.Text = "" Then
Tb1.Text = "0.00"
ElseIf Cb1.Text = "" Then
Lb4.Visible = False
LbAction.Visible = False
Lb1.Visible = False
Lb2.Visible = False
Tb1.Visible = False
Tb2.Visible = False
TransactionListBox.Visible = False
SubmitTransactionButton.Visible = False
ElseIf Cb1.Text = "Credit" Then
Lb4.Visible = False
LbAction.Visible = False
Lb1.Visible = True
Lb2.Visible = True
LbAction.Visible = False
Tb1.Visible = True
Tb2.Visible = True
TransactionListBox.Visible = False
Lb1.Text = "Enter Credit Amount"
Lb2.Text = "Describe the Income"
SubmitTransactionButton.Visible = True
ElseIf Cb1.Text = "Debit" Then
LbAction.Visible = False
Lb1.Visible = True
Lb4.Visible = False
Lb2.Visible = True
LbAction.Visible = False
Tb1.Visible = True
Tb2.Visible = True
TransactionListBox.Visible = False
Lb1.Text = "Enter Debit Amount"
Lb2.Text = "Describe the Expense"
SubmitTransactionButton.Visible = True
ElseIf Cb1.Text = "Display Transactions" Then
TransactionListBox.Visible = True
Lb4.Visible = False
LbAction.Visible = False
Lb1.Visible = False
Lb2.Visible = False
Tb1.Visible = False
Tb2.Visible = False
SubmitTransactionButton.Visible = False
For Each transaction In TransactionList
TransactionListBox.Items.Add(
String.Format("{0}: {1:C}. {2}",
transaction.Type,
transaction.Amount,
transaction.Description))
Next
ElseIf Cb1.Text = "Display Balance" Then
Lb4.Visible = True
Lb1.Visible = False
Lb2.Visible = False
LbAction.Visible = False
Tb1.Visible = False
Tb2.Visible = False
TransactionListBox.Visible = False
Lb4.Text = "Current Balance: $"
End If
End Sub
Private Sub SubmitTransactionButton_Click(sender As Object, e As EventArgs) Handles SubmitTransactionButton.Click
Dim transactionTypeString As String = Cb1.Text
Dim transactionDescriptionstring As String = Tb2.Text
Dim transactionAmountDecimal As Decimal
If Tb1.Text IsNot "" Then
'Tb1.Text = "0.00"
Tb2.Text = ""
Cb1.Text = ""
Lb1.Visible = False
Lb2.Visible = False
Tb1.Visible = False
Tb2.Visible = False
SubmitTransactionButton.Visible = False
End If
Try
transactionAmountDecimal = Decimal.Parse(Tb1.Text)
TransactionList.Add(New Transaction(
transactionTypeString,
transactionAmountDecimal,
transactionDescriptionstring))
Catch FormatExceptionParameter As FormatException
transactionAmountDecimal = 0D
End Try
End Sub
End Class
Public Class Transaction
Public Sub New(type As String, amount As Decimal, description As String)
Me.Type = type
Me.Amount = amount
Me.Description = description
If Me.Type = "Credit" Then
Me.Amount *= -1
End If
End Sub
Public Property Type As String
Public Property Amount As Decimal
Public Property Description As String
End Class