//para el thread private void ProbarTodo() { EventDelegatePrice formLoad = new EventDelegatePrice(FrmSP_Load); EventDelegatePrice button1 = new EventDelegatePrice(btnPunto1_Click); EventDelegatePrice button2 = new EventDelegatePrice(btnPunto2_Click); formLoad.Invoke(formLoad, EventArgs.Empty); button1.Invoke(button1, EventArgs.Empty); button2.Invoke(button2, EventArgs.Empty); }
//Si el precio total de la caja supera los 120 pesos, se disparará el evento EventoPrecio. //Diseñarlo (de acuerdo a las convenciones vistas) en la clase caja. //Adaptar la sobrecarga del operador +, para que lance el evento, según lo solicitado. //Crear el manejador necesario para que, una vez capturado el evento, se imprima en un archivo de texto: //la fecha (con hora, minutos y segundos) y el total de la caja (en un nuevo renglón). //Se deben acumular los mensajes. //El archivo se guardará con el nombre 'facturas.log' en la carpeta 'Mis documentos' del cliente. //El manejador de eventos (c_fosforos_EventoPrecio) invocará al método (de clase) //ImprimirFactura (se alojará en la clase Facturadora), que retorna un booleano //indicando si se pudo escribir o no. private void btnPunto4_Click(object sender, EventArgs e) { try { //Asociar manejador de eventos (c_fosforos_EventoPrecio) aquí EventDelegatePrice myDelegate = new EventDelegatePrice(c_fosforos_EventoPrecio); this.c_fosforos.EventoPrecio += myDelegate; this.c_fosforos += new Fosforo("Madera", "Fragata", 60); } catch (Exception ex) { //Agregar, para la clase CajaLlenaException, un método de extensión (InformarNovedad():string) //que retorne el mensaje de error MessageBox.Show(ex.Message); } }