You can make your RadioButtons essentially read-only without disabling anything with code like this:
VB Code:
Private currentCheckedRadio As RadioButton 'The RadioButton that is currently checked.
Private allowCheckedChange As Boolean = True 'Whether the RadioButtons can change their Checked state.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.RadioButton1.Checked = True
Me.currentCheckedRadio = Me.RadioButton1
Me.allowCheckedChange = False
End Sub
Private Sub RadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, _
RadioButton2.CheckedChanged, _
RadioButton3.CheckedChanged
If Me.allowCheckedChange Then
'Allow the new RadioButton to be checked.
Me.currentCheckedRadio = DirectCast(sender, RadioButton)
ElseIf Not sender Is Me.currentCheckedRadio Then
'Recheck the appropriate RadioButton.
Me.currentCheckedRadio.Checked = True
End If
End Sub
Then whenever you want to check a different one yourself you just use code like this:
VB Code:
Me.allowCheckedChange = True
Me.RadioButton2.Checked = True
Me.allowCheckedChange = False