LP2

LP2

LP2

profile-pic

Eventos e novos componentes no Windows Forms

Em uma aplicação Windows Forms, o usuário não segue uma sequência fixa como no Console. Ele clica, marca opções, muda números e espera que a tela responda. Um evento é exatamente esse momento em que alguma coisa acontece no formulário e o nosso código entra em ação.

Evento

É uma ação percebida pelo formulário: clique em botão, mudança de valor, marcação de opção ou digitação em um campo.

Componente

É uma peça da tela. Exemplos: botão, label, caixa numérica, checkbox e radio button.

Tratador de evento

É o método que roda quando o evento acontece. Normalmente ele termina com nomes como _Click ou _ValueChanged.

Como pensar em eventos

1
O usuário faz uma ação

Ele clica em um botão, altera um NumericUpDown, marca um CheckBox ou escolhe um RadioButton.

2
O componente avisa o formulário

O Windows Forms percebe que algo mudou e dispara o evento correspondente.

3
O método do evento executa

Dentro desse método, você lê os valores da tela, faz cálculos e atualiza labels, botões ou outros componentes.

Uma forma simples de memorizar: evento é o gatilho; o método é a resposta do programa. Se o aluno muda um número, clica em calcular ou escolhe uma opção, o formulário precisa saber o que fazer em seguida.

Componentes desta aula

Componente Quando usar Propriedades úteis Evento comum
NumericUpDown Quando o usuário deve informar um número com limite mínimo, máximo ou casas decimais. Value, Minimum, Maximum, DecimalPlaces ValueChanged
CheckBox Quando uma opção pode estar marcada ou desmarcada, sem depender de outra opção. Checked, Text CheckedChanged
RadioButton Quando o usuário deve escolher uma opção dentro de um grupo de alternativas. Checked, Text CheckedChanged
CheckBox e RadioButton parecem parecidos, mas resolvem problemas diferentes. Use CheckBox para escolhas independentes. Use RadioButton quando apenas uma alternativa deve ficar ativa dentro daquele grupo.

Exemplos de código

Os exemplos abaixo mostram a ideia principal. O nome dos componentes no seu projeto pode ser diferente, mas a lógica é a mesma: ler a propriedade certa, decidir o que fazer e escrever o resultado na tela.

Click de botão lendo NumericUpDown
private void btnCalcular_Click(object sender, EventArgs e)
{
    double raio = Convert.ToDouble(numRaio.Value);
    double area = Math.PI * Math.Pow(raio, 2);

    lblResultado.Text = "Área: " + area.ToString("F2");
}
CheckBox ligando ou desligando uma opção
private void chkMostrarDetalhes_CheckedChanged(object sender, EventArgs e)
{
    if (chkMostrarDetalhes.Checked)
    {
        lblDetalhes.Text = "Mostrando detalhes do cálculo.";
    }
    else
    {
        lblDetalhes.Text = "";
    }
}
RadioButton escolhendo uma operação
private void btnCalcular_Click(object sender, EventArgs e)
{
    double numero = Convert.ToDouble(numValor.Value);
    double resultado;

    if (rdbRaiz.Checked)
    {
        resultado = Math.Sqrt(numero);
    }
    else if (rdbQuadrado.Checked)
    {
        resultado = Math.Pow(numero, 2);
    }
    else
    {
        resultado = numero;
    }

    lblResultado.Text = resultado.ToString("F2");
}
Em muitos exercícios, o evento principal será o Click do botão calcular. Ainda assim, conhecer ValueChanged e CheckedChanged ajuda a criar telas mais vivas, que reagem assim que o usuário altera algum componente.