Nesse metodo ou função criada, entendo a maioria dos comandos, mas não consigo compreender direito o que são (OBject Sender e EventArgs e)
alguém poderia me ajudar a decifrar .
private void Calcular(object sender, EventArgs e)
{
try
{
decimal valor1, valor2, resultado = 0;
valor1 = Convert.ToDecimal(valor1TextBox.Text);
valor2 = Convert.ToDecimal(valor2TextBox.Text);
Button botao = new Button();
botao = (Button)sender;
switch (botao.Text)
{
case "+": resultado = valor1 + valor2; break;
case "-": resultado = valor1 - valor2; break;
case "*": resultado = valor1 * valor2; break;
case "/": resultado = valor1 / valor2; break;
}
resultadoLabel.Text = resultado.ToString("n2");
}
catch (FormatException)
{
MessageBox.Show("Erro de formato");
}
catch (DivideByZeroException)
{
MessageBox.Show("Erro de Divisão por Zero");
}
catch (Exception)
{
MessageBox.Show("Erro de Desconhecido");
}
}
Object Sender
Started By aldomacedo, 07/01/2009, 14:14
1 reply to this topic
#1
Posted 07/01/2009, 14:14
#2
Posted 07/08/2009, 15:57
O "sender" é um objeto qualquer que tenha gerado o evento Calcular.
O "e" (EventArgs) são os argumentos passados para o evento.
Neste caso aqui, EventArgs não faz nenhuma diferença, mas por exemplo, se o evento sendo tratado fosse o movimento do mouse, então EventArgs traria a posição X, Y do mouse assim como o botão do mouse que está presisonado, Esquerdo, Direito ou do Meio.
Pelo código, creio que se trata de uma calculadora.
Você tem no form 4 botões, cada um para uma operação (soma, divisão subtração, multipllicação).
Você poderia programar separadamente um evento para cada botão.
Mas para gerar menos código fonte e ficar mais organizado, implementou-se apenas um evento, e este mesmo evento é chamado em todos os botões.
Ou seja, quando você clica no botão de soma e no botão de divisão, o código que será executado é exatamente o mesmo.
A única coisa que muda, é o objeto sender, que no caso é o botão pressionado.
Neste ponto, o algoritmo verifica se o texto do botão pressionado é "+" e faz uma soma, se for "-" faz uma subtração e assim por diante...
Você pode fazer uma brincadeira. Crie um novo botão no form. Mude o texto dele para "^".
Agora no evento Click do botão, selecione o método evento Calcular.
Depois vá até o código fonte e digite:
case "^": resultado = Math.Pow(valor1, valor2); break;
Isso vai retornar a potência entre os dois valores.
OBS: você pode associar o evento Calcular com qualquer outro tipo de controle, não precisa ser necessariamente um botão.
Espero que você tenha entendido!!!
O "e" (EventArgs) são os argumentos passados para o evento.
Neste caso aqui, EventArgs não faz nenhuma diferença, mas por exemplo, se o evento sendo tratado fosse o movimento do mouse, então EventArgs traria a posição X, Y do mouse assim como o botão do mouse que está presisonado, Esquerdo, Direito ou do Meio.
Pelo código, creio que se trata de uma calculadora.
Você tem no form 4 botões, cada um para uma operação (soma, divisão subtração, multipllicação).
Você poderia programar separadamente um evento para cada botão.
Mas para gerar menos código fonte e ficar mais organizado, implementou-se apenas um evento, e este mesmo evento é chamado em todos os botões.
Ou seja, quando você clica no botão de soma e no botão de divisão, o código que será executado é exatamente o mesmo.
A única coisa que muda, é o objeto sender, que no caso é o botão pressionado.
Neste ponto, o algoritmo verifica se o texto do botão pressionado é "+" e faz uma soma, se for "-" faz uma subtração e assim por diante...
Você pode fazer uma brincadeira. Crie um novo botão no form. Mude o texto dele para "^".
Agora no evento Click do botão, selecione o método evento Calcular.
Depois vá até o código fonte e digite:
case "^": resultado = Math.Pow(valor1, valor2); break;
Isso vai retornar a potência entre os dois valores.
OBS: você pode associar o evento Calcular com qualquer outro tipo de controle, não precisa ser necessariamente um botão.
Espero que você tenha entendido!!!
2 user(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)