none
Incrementar um contador a um radiobutton RRS feed

  • Pergunta

  • Boa tarde,

    Tenho 5 radiobuttons (rbt1,rbt2,rbt3,rbt4,rbt5)

    Tenho que verificar qual opção foi selecionada, mas não gostaria de utilizar IF.

    Existe alguma forma de fazer algo parecido com o código abaixo?


                            for(int i = 0; i >5; i++)
                            {
                                if(rbt + i.Checked)
                                {
                                    MessageBox.Show("Entrou)";
                                }
                            }

    Agradeço pela atenção.

    quarta-feira, 30 de novembro de 2016 16:17

Respostas

  • Tentei dessa forma, mas como os RadioButton estão dentro de um groupbox não funcionou.

    Neste caso voce pode fazer:

    foreach (Control c in panel1.Controls)
    {
        if(c is RadioButton)
        {
             if ((c as RadioButton).Checked)
                 MessageBox.Show(c.Name + " - Entrou");
        }
    }

    onde panel1 é nome do seu groupbox



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Gui_Souza quarta-feira, 30 de novembro de 2016 18:52
    quarta-feira, 30 de novembro de 2016 18:26
    Moderador

Todas as Respostas

  • Onde voce chama esse codigo?

    O ideal é usar o evento CheckedChange, onde seus 5 radiobuttons usam o mesmo delagate.

    voce pode usar  o argumento sender para diferenciar cada um dos controles, exemplo:

    private void radioButton_CheckedChanged(Object sender, 
                                             EventArgs e)
    {
    
       MessageBox.Show(Sender.Name + " - Entrou)";
    }
    att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 30 de novembro de 2016 16:36
    Moderador
  • Olá,

    Se os RadioButton estiverem soltos no form, pode fazer assim:

    foreach (Control c in this.Controls)
    {
        if(c is RadioButton)
        {
             if ((c as RadioButton).Checked)
                 MessageBox.Show("Entrou");
        }
    }

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quarta-feira, 30 de novembro de 2016 16:38
  • Tenho que chamar dentro de um método, antes de inserir as informações no banco.

    Nesse caso não funcionaria, já que tenho que fazer a verificação depois de algum tempo.

    quarta-feira, 30 de novembro de 2016 17:26
  • Tentei dessa forma, mas como os RadioButton estão dentro de um groupbox não funcionou.
    quarta-feira, 30 de novembro de 2016 17:27
  • Tentei dessa forma, mas como os RadioButton estão dentro de um groupbox não funcionou.

    Neste caso voce pode fazer:

    foreach (Control c in panel1.Controls)
    {
        if(c is RadioButton)
        {
             if ((c as RadioButton).Checked)
                 MessageBox.Show(c.Name + " - Entrou");
        }
    }

    onde panel1 é nome do seu groupbox



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Gui_Souza quarta-feira, 30 de novembro de 2016 18:52
    quarta-feira, 30 de novembro de 2016 18:26
    Moderador
  • Tentei dessa forma, mas como os RadioButton estão dentro de um groupbox não funcionou.

    Neste caso voce pode fazer:

    foreach (Control c in panel1.Controls)
    {
        if(c is RadioButton)
        {
             if ((c as RadioButton).Checked)
                 MessageBox.Show(c.Name + " - Entrou");
        }
    }

    onde panel1 é nome do seu groupbox



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi Informatique ltée

    Dessa forma funcionou, muito obrigado a todos pela ajuda.

    quarta-feira, 30 de novembro de 2016 18:53