Reputation: 1393
This is kinda simple, and really silly. but I can't see what I am missing..
Private Sub btnmode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnmode.Click
If Me.btnmode.Text = "COMMAND MODE" Then
Me.btnmode.Text = "DATA MODE"
sPort.Write("$$$")
End If
If Me.btnmode.Text = "DATA MODE" Then
Me.btnmode.Text = "COMMAND MODE"
sPort.Write("$$$" & vbCr)
sPort.Write("exit" & vbCr)
End If
End Sub
with this code, I should be able to change its text after clicking. but why is it not? nothing is happening.
Upvotes: 0
Views: 14255
Reputation: 13250
If Me.btnLoad.Text = "COMMAND MODE" Then
Me.btnLoad.Text = "DATA MODE"
sPort.Write("$$$")
ElseIf Me.btnLoad.Text = "DATA MODE" Then
Me.btnLoad.Text = "COMMAND MODE"
sPort.Write("$$$" & vbCr)
sPort.Write("exit" & vbCr)
End If
Upvotes: 0
Reputation: 67187
Use a select case in this situation, It will be more readable.
select case ucase(Me.btnmode.Text)
case "COMMAND MODE"
Me.btnmode.Text = "DATA MODE"
sPort.Write("$$$")
case "DATA MODE"
Me.btnmode.Text = "COMMAND MODE"
sPort.Write("$$$" & vbCr)
sPort.Write("exit" & vbCr)
End Select
Problems found in your code:
If Me.btnmode.Text = "COMMAND MODE" Then
Me.btnmode.Text = "DATA MODE" '--------> Text been set as DATA MODE
sPort.Write("$$$") ' |
End If ' |
' |
If Me.btnmode.Text = "DATA MODE" Then ' ---------> Here again
Me.btnmode.Text = "COMMAND MODE" ' you are checking the Text with
sPort.Write("$$$" & vbCr) ' DATA MODE and you are assigning
sPort.Write("exit" & vbCr) ' the text back to COMMAND MODE
End If
So i guess initially your button's text is set with "COMMAND MODE". As a result, your button's text is refusing to revert back.
Upvotes: 1