• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anolsi

Radio Button em GroupBox

7 mensagens neste tópico

Existe alguma forma de saber-mos automaticamente qual é a Radio Button "marcada" em determinado momento numa GroupBox? Uma vez que só pode estar uma seleccionada...  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não!

Uma groupbox é apenas um grupo e se tiveres muitas podes é criar uma função que verifique qual a seleccionada (for each)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, isso sei. Mas o nosso stor lançou o desafio de tentar descobrir uma maneira de fazer isso. E eu já tinha procurado no MSDN e não tinha descoberto nada, mas quis ter a certeza, porque ele próprio não sabia se existia...

Obrigado na mesma...  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Existir existe, mas tens de previamente criar o código para isso...

Por exemplo:

Public rd_selecionada As String
Private Sub RadioButton1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
    If (RadioButton1.checked = True) Then  
        rd_selecionada = "Rd. nº 1"
    End If
End Sub

Private Sub RadioButton2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
    If (RadioButton2.checked = True) Then  
        rd_selecionada = "Rd. nº 2"
    End If
End Sub

Private Sub RadioButton3_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
    If (RadioButton3.checked = True) Then  
        rd_selecionada = "Rd. nº 3"
    End If
End Sub

A qualquer altura do teu programa podes chamar a variável rd_selecionada para saber qual a Radio que está selecionada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Weasel então e se tivesses 50 RadioButtons ? Tinhas the colocar código em todos!

Isso não é uma forma nada pratica de o fazer (mas é como muita gente faz!)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma solução melhor por código seria:

Dim rdbclicada as New RadioButton 'Varirável global
Private Sub RadioButton1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)  Handles rdb1.checkedchanged, rdb2.checkedchanged, ...
Dim rdb as RadioButton = ctype(sender, radiobutton)
If rdb.checkedstate Then rdbclicada = rdb
End Sub
Private Sub btnSeguinte_click(ByVal sender As Object, ByVal e As System.EventArgs)  Handles btnSeguinte.click
'Fazer qualquer coisa com o rdbclicada
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Uma solução melhor por código seria:

Sim é verdade mas aí se adicionares outra rariobutton tens de acrescentar e ainda tens de usar variáveis.

Uma solução mais trabalhada e versátil pode ser assim:

   Private Function GetSelection() As String
        For Each ctrl As Control In GroupBox1.Controls
            If TypeOf ctrl Is RadioButton Then
                If CType(ctrl, RadioButton).Checked Then
                    Return CType(ctrl, RadioButton).Text
                End If
            End If
        Next
        Return String.Empty
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Debug.Print(GetSelection)
    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora