private void btn_igual_Click(object sender, EventArgs e) { try { /*inicializo el conversor y el operador que me permitiran llevar a delante la logica del calculo*/ Conversiones conversor = new Conversiones(); Operacion operador = new Operacion(); if (txb_visor.Text != "" && lbl_terminoUno.Text != "") { lbl_terminoDos.Text = txb_visor.Text; /*se almacena este dato en el caso de luego querer incorporar alguna * funcionalidad relacionada al recalculo en base a un resultado ya obtenido*/ switch (lbl_operador.Text) { /*se convierte a decimal lo ingresado en el visor. Luego en una variable de tipo * ResultadoDeOPeracion se guarda el resultado de la operacion, ya sea un error o el total numerico*/ case "X": { int factor1 = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int factor2 = conversor.Hex_a_Decimal(lbl_terminoDos.Text); ResultadoDeOperacion producto; producto = operador.Multiplicacion(factor1, factor2); if (!producto.reportaError) { txb_visor.MaxLength = 32; /* Si no da error la operacion se convierte el resultado a hexadecimal*/ txb_visor.Text = conversor.Decimal_a_Hex(producto.resultado); /*y se muestra en pantalla*/ lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(producto.descripcionError, "Aviso", MessageBoxButtons.OK); /* caso contrario se dispara un aviso*/ } break; } case "/": { Validaciones validador = new Validaciones(); int dividendo = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int divisor = conversor.Hex_a_Decimal(lbl_terminoDos.Text); if (!validador.DivisionPorCero(divisor)) { ResultadoDeOperacion cociente; cociente = operador.Division(dividendo, divisor); if (!cociente.reportaError) { txb_visor.MaxLength = 32; txb_visor.Text = conversor.Decimal_a_Hex(cociente.resultado); lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(cociente.descripcionError, "Aviso", MessageBoxButtons.OK); } } else { txb_visor.Text = "Error division por cero"; txb_visor.Enabled = false; lbl_terminoUno.Text = ""; lbl_terminoDos.Text = ""; lbl_operador.Text = ""; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } break; } case "+": { int sumando1 = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int sumando2 = conversor.Hex_a_Decimal(lbl_terminoDos.Text); ResultadoDeOperacion suma = operador.Suma(sumando1, sumando2); if (!suma.reportaError) { txb_visor.MaxLength = 32; txb_visor.Text = conversor.Decimal_a_Hex(suma.resultado); lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(suma.descripcionError, "Aviso", MessageBoxButtons.OK); } break; } case "-": { int minuendo = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int sustraendo = conversor.Hex_a_Decimal(lbl_terminoDos.Text); ResultadoDeOperacion diferencia = operador.Resta(minuendo, sustraendo); if (!diferencia.reportaError) { txb_visor.MaxLength = 32; txb_visor.Text = conversor.Decimal_a_Hex(diferencia.resultado); lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(diferencia.descripcionError, "Aviso", MessageBoxButtons.OK); } break; } default: break; } } } catch (Exception) { throw; } }