Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2013, 04:34
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 3 meses
Puntos: 0
calculadora en c# windows forms

Muy buenas y gracias por leerme.

Tengo hecha una calculadora , funciona perfectamente, tiene retroceso, hace logarimos y etc, pero sólo funciona para dos números, y quiero que funcione para tantos números como yo quiera.

es decir, el funcionamiento es este.

al pulsar un botón numerico, la pantalla recoge la salida del evento on_click, e imprime por pantalla el número

al pulsar un botón de operación que requiera un segundo número, suma, resta,...etc, el evento onclick de ese botón me guarda el número impreso en pantalla y da un valor a la operación, por ejemplo llamada substraer

Código c#:
Ver original
  1. private void bsubtract_Click(object sender, EventArgs e)
  2.         {
  3.             this.operation = "substraer";
  4.             detecta = true;
  5.  
  6.             num1 = Double.Parse(pantalla.Text);
  7.         }

Ahora bien, cuando hago esto, el primer número queda guardado en la variable num1.

ahora pulso otro botón númerico, y al pulsar igual, me almacena el segundo número impreso en pantalla en otra variable num2, para el caso de substraer es:

Código c#:
Ver original
  1. private void bigual_Click(object sender, EventArgs e)
  2.         {
  3.          
  4.             if (operation == "substraer")
  5.             {
  6.                 this.num2 = double.Parse(pantalla.Text);
  7.                 this.resultado = num1 - num2;
  8.                 pantalla.Text = resultado.ToString();
  9.             }
  10.           }

funciona perfectamente, el problema es que sólo vale para dos números, he intentado meter un vector como argumento pero resulta que los métodos
creados automáticamente al iniciar el evento on_click no aceptan más parámetros que los que vienen por defecto.

¿alguien podría darme alguna indicación de cómo conseguir que se pueda hacer esto?

4+6+7+8+1-2-3+7 y me de el resultado cuando pulse igual?

gracias