COLORIR RADIO BUTTON

RLUIZ 19/03/2012 22:34:50
#397579
Boa noite Srs!
Estou muito orgulhoso de participar deste grupo seleto de programadores.
A minha dúvida é:

Eu tenho um progrma escrito em vb6 no qual o usuário tem que escolher uma opção
dentre 50 opções listada, gostaria que a opção escolhida ficasse em destaque na cor
vermelha e o restante na cor preta.
No vb6 eu colocava os radiobuttons em uma matriz e abria um comando FOR.

Quando o usuario selecionava o radiobutton(3) por exemplo:

Private Sub Option_Click(Index As Integer)

For x = 0 To 49
Option(x).ForeColor = &H80000012
Next x

Option(Index).ForeColor = &HFF&

End Sub

Com quatro linhas de código eu programava qualquer quantidade de radiobutton.

Agora, o vb 2010 não permite mais array nestes controles, e eu só sei programar definindo todos os radiobuttons desta forma:

Private Sub BtnOpcao_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles RadioButton1.CheckedChanged, RadioButton11.CheckedChanged, RadioButton21.CheckedChanged, RadioButton31.CheckedChanged, RadioButton41.CheckedChanged, _
RadioButton2.CheckedChanged, RadioButton12.CheckedChanged, RadioButton22.CheckedChanged, RadioButton32.CheckedChanged, RadioButton42.CheckedChanged, _
RadioButton3.CheckedChanged, RadioButton13.CheckedChanged, RadioButton23.CheckedChanged, RadioButton33.CheckedChanged, RadioButton43.CheckedChanged, _
RadioButton4.CheckedChanged, RadioButton14.CheckedChanged, RadioButton24.CheckedChanged, RadioButton34.CheckedChanged, RadioButton44.CheckedChanged, _
RadioButton5.CheckedChanged, RadioButton15.CheckedChanged, RadioButton25.CheckedChanged, RadioButton35.CheckedChanged, RadioButton45.CheckedChanged, _
RadioButton6.CheckedChanged, RadioButton16.CheckedChanged, RadioButton26.CheckedChanged, RadioButton36.CheckedChanged, RadioButton46.CheckedChanged, _
RadioButton7.CheckedChanged, RadioButton17.CheckedChanged, RadioButton27.CheckedChanged, RadioButton37.CheckedChanged, RadioButton47.CheckedChanged, _
RadioButton8.CheckedChanged, RadioButton18.CheckedChanged, RadioButton28.CheckedChanged, RadioButton38.CheckedChanged, RadioButton48.CheckedChanged, _
RadioButton9.CheckedChanged, RadioButton19.CheckedChanged, RadioButton29.CheckedChanged, RadioButton39.CheckedChanged, RadioButton49.CheckedChanged, _
RadioButton10.CheckedChanged, RadioButton20.CheckedChanged, RadioButton30.CheckedChanged, RadioButton40.CheckedChanged, RadioButton50.CheckedChanged

Dim BtnOption As RadioButton
BtnOption = CType(sender, RadioButton)

RadioButton1.ForeColor = Color.Black : RadioButton11.ForeColor = Color.Black : RadioButton21.ForeColor = Color.Black : RadioButton31.ForeColor = Color.Black : RadioButton41.ForeColor = Color.Black
RadioButton2.ForeColor = Color.Black : RadioButton12.ForeColor = Color.Black : RadioButton22.ForeColor = Color.Black : RadioButton32.ForeColor = Color.Black : RadioButton42.ForeColor = Color.Black
RadioButton3.ForeColor = Color.Black : RadioButton13.ForeColor = Color.Black : RadioButton23.ForeColor = Color.Black : RadioButton33.ForeColor = Color.Black : RadioButton43.ForeColor = Color.Black
RadioButton4.ForeColor = Color.Black : RadioButton14.ForeColor = Color.Black : RadioButton24.ForeColor = Color.Black : RadioButton34.ForeColor = Color.Black : RadioButton44.ForeColor = Color.Black
RadioButton5.ForeColor = Color.Black : RadioButton15.ForeColor = Color.Black : RadioButton25.ForeColor = Color.Black : RadioButton35.ForeColor = Color.Black : RadioButton45.ForeColor = Color.Black
RadioButton6.ForeColor = Color.Black : RadioButton16.ForeColor = Color.Black : RadioButton26.ForeColor = Color.Black : RadioButton36.ForeColor = Color.Black : RadioButton46.ForeColor = Color.Black
RadioButton7.ForeColor = Color.Black : RadioButton17.ForeColor = Color.Black : RadioButton27.ForeColor = Color.Black : RadioButton37.ForeColor = Color.Black : RadioButton47.ForeColor = Color.Black
RadioButton8.ForeColor = Color.Black : RadioButton18.ForeColor = Color.Black : RadioButton28.ForeColor = Color.Black : RadioButton38.ForeColor = Color.Black : RadioButton48.ForeColor = Color.Black
RadioButton9.ForeColor = Color.Black : RadioButton19.ForeColor = Color.Black : RadioButton29.ForeColor = Color.Black : RadioButton39.ForeColor = Color.Black : RadioButton49.ForeColor = Color.Black
RadioButton10.ForeColor = Color.Black : RadioButton20.ForeColor = Color.Black : RadioButton30.ForeColor = Color.Black : RadioButton40.ForeColor = Color.Black : RadioButton50.ForeColor = Color.Black


BtnOption.ForeColor = Color.Red



Minha dúvida é óbvia:

-Teria como programar este evento de uma forma menos entediante?
Eu quero acreditar que meu conhecimento em vb 2010 não é suficiente para tal tarefa, porque me recuso
a acreditar que os cránios da microsoft não deram atenção a esta particularidade.
antecipadamente agradeço a qualquer esforço para resolver esta dúvida.
Atenciosamente,
Roberto Luiz.

PHOENIX209E 20/03/2012 01:33:32
#397581
Resposta escolhida
Boa noite,
nao entendi muito bem o seu problema,mas deu pra entender o contexto.
voce pode rodar um for each e buscar todos os controles que são radiobuttons e ir setando a cor:

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
Dim radio As Control
For Each radio In Me.Controls
If (TypeOf radio Is RadioButton) Then
If (RadioButton1.Checked) Then
radio.BackColor = Color.Red
Else
radio.BackColor = Color.Transparent
End If
End If
Next
End Sub

pega o codigo,só ir mudando como quiserr ;)
RLUIZ 20/03/2012 18:42:09
#397732
Você me tirou uma grande dúvida, muito obrigado PHOENIX209E, o seu código funcionou perfeitamente.
Tópico encerrado , respostas não são mais permitidas