segunda-feira, 9 de maio de 2011

Criando uma listagem de RadioButton

Na Toolbox do Visual Studio, mais precisamente na guia Common Controls, possui um controle chamado CheckedListBox, que nada mais é do que uma listagem de controles CheckBox. Analisando os demais controles, percebemos que não há um que renderize vários controles RadioButton. Pensando nisso, vamos escrever uma rotina simples que preencha um GroupBox com vários controles RadioButton em linguagem C#.

Abra o Visual Studio e crie um novo projeto (File > New > Project) do tipo Windows Forms Application em linguagem C#.


Acesse a Toolbox (caso não esteja aparecendo na IDE, clique no menu View > Toolbox) e adicione os controles GroupBox e Button no formulário Form1. Ajuste os controles para que fiquem conforme a 
imagem.



Dê um duplo-clique no meio do Form1, para termos acesso ao editor de código fonte, a fim de escrevermos a rotina que irá carregar o contêiner com os controles.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        int altura = 25;
        foreach (string linguagem in this.ListaDeLinguagens())
        {
            RadioButton rb = new RadioButton()
            {
                Text = linguagem,
                Location = new Point(10, altura),
                Width = groupBox1.Width - 30
            };
            altura += 25;
            groupBox1.Controls.Add(rb);
        }
        altura += 10;
        groupBox1.Height = altura;
        groupBox1.Text = "Escolha a sua linguagem preferida";
    }

    private string[] ListaDeLinguagens()
    {
        return new string[] { "C#", "C++", "Visual Basic .NET", "Visual Basic 6.0", "Delphi", "Java" };
    }
}

Volte ao Design do Form1, dê um duplo-clique no botão “Enviar” e escreva a listagem abaixo no escopo do evento Click.

private void button1_Click(object sender, EventArgs e)
{
    foreach (Control rb in groupBox1.Controls)
    {
        RadioButton r = (RadioButton)rb;
        if (r.Checked)
        {
            MessageBox.Show(r.Text);
            return;
        }
    }
}

O exemplo é bem simples, e o resultado é demonstrado nas imagens abaixo:



Perceba que o contêiner GroupBox se ajusta para exibir a quantidade de controles RadioButton.
Espero que gostem.

Até a próxima!

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário