Dimitri
Dimitri

Reputation: 37

Backcolor change of radiobutton, with button appearance

I'm creating a laboratory application in VS2013, where the user enters a rack number, and gets back a visual grid of which samples he/she has to weigh for a certain analysis, for that specific rack with samples.

I'm getting the information from an Oracle DB, based on the requested/send SQL string.

I've created radio buttons as a means of selecting/filter the analysis type. I've given them the appearance of regular buttons, in the object properties.

When a certain radio buttons is clicked, I want to give them a specific color, depending on the type of analysis. The same color will be used to mark the samples that are to be weighed in the visual grid.

When I test the program, the radio buttons do what they need to do (meaning: getting the correct info from Oracle DB), but I can't seem to manage the backcolor change of the radio buttons. The backcolor change of the regular buttons (on visual grid) is working correctly.

I trigger the function behind all this, by Function Rbanalysistype (sender as object, e as EventArgs) Handles Rbanalysistype1.Click, Rbanalysistype2.Click, ...

Public Function RbAnaTypeClick(sender As Object, e As EventArgs) Handles RbAnaTypeAcIn.CheckedChanged
    Dim SenderName As String = ""
    Dim TitrType As String = ""

    SenderName = CType(sender, RadioButton).Name

    Select Case SenderName

        Case Is = "RbAnaTypeAcIn"
            TitrType = "AcIn"

            'put correct Radiobuttion in GbAnaType in color
            If RbAnaTypeAcIn.Checked = True Then
                RbAnaTypeAcIn.BackColor = Color.Orange
            End If

    End Select

End Function

Upvotes: 0

Views: 5121

Answers (1)

jmcilhinney
jmcilhinney

Reputation: 54457

You're handling the wrong event for a start. Here's the sort of thing you should be doing:

Private Sub RadioButtons_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged,
                                                                                  RadioButton2.CheckedChanged
    Dim rb = DirectCast(sender, RadioButton)

    If rb.Checked Then
        rb.BackColor = Color.Red
    Else
        rb.BackColor = Color.Green
    End If
End Sub

Upvotes: 1

Related Questions