none
Notificación independiente a evento que lo llamo. RRS feed

  • Pregunta

  • Hola

    Tengo un formulario de notificaciones el cual deseo que sea independiente al evento que lo llamo.

    Muestro código

    public FrmAlertas(string message, AlertType type) : this()
            {
                lblMensaje.Text = message;
                switch (type)
                {
                    case AlertType.Success:
                        this.BackColor = Color.FromArgb(46, 204, 113);
                        picIcon.Image = imageList1.Images[0];
                        break;
                    case AlertType.Info:
                        this.BackColor = Color.FromArgb(133, 193, 233);
                        picIcon.Image = imageList1.Images[1];
                        break;
                    case AlertType.Warning:
                        this.BackColor = Color.FromArgb(244, 208, 63);
                        picIcon.Image = imageList1.Images[2];
                        break;
                    case AlertType.Error:
                        this.BackColor = Color.Red;
                        picIcon.Image = imageList1.Images[3];
                        break;
                    default:
                        break;
                }
            }
    
            public static void Alertas(string message, AlertType type)
            {
                var argMensaje = new ConstructorArgument("message", message);
                var argType = new ConstructorArgument("type", type);
                CompositionRoot.Resolve<FrmAlertas>(argMensaje, argType).Show(); => Acá es cuando llamo al formulario
            }

    De esta manera lo implemento como ejemplo.

    public void Guardar()
            {
                try
                {
                    var entity = new Cliente()
                    {
                        ClienteId = string.IsNullOrEmpty(txtClienteId.Text)
                            ? 0
                            : Convert.ToInt32(txtClienteId.Text),
                        TipoIdentificacionId = (int)(cboTipoIdentificacion.SelectedValue),
                        Numero = txtNumero.Text,
                        RazonSocial = txtRazonSocial.Text,
                        Direccion = txtDireccion.Text,
                        Telefono = txtTelefono.Text,
                        Email = txtEmail.Text
                    };
                    _saCliente.Create(entity);
                    txtClienteId.Text = Convert.ToString(entity.ClienteId);
                    FrmAlertas.Alertas("Success", AlertType.Success);
                    LoadDgvCliente();
                    Opener.HabilitarBotonesDespuesGuardar(true);
                    //Opener.MostrarReloj();
                }
                catch (CustomException e)
                {
                    FrmAlertas.Alertas(e.Message, AlertType.Info);
                }
                catch (Exception e)
                {
                    FrmAlertas.Alertas(e.Message, AlertType.Error);
                }
            }

    Deseo que las notificaciones sean independientes del evento que lo llamo sea el evento click de un botón el evento keypress de alguna caja de texto.

    ¿Se puede solucionar de alguna manera?

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    miércoles, 28 de agosto de 2019 20:35

Todas las respuestas

  • hola

    >>Deseo que las notificaciones sean independientes del evento que lo llamo sea el evento click de un botón el evento keypress de alguna caja de texto.

    No veo que tiene que ver el evento

    En el codigo que nos muestras el metodo static Alertas() no se relaciona con ningun evento

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 28 de agosto de 2019 21:20
  • En el caso que lo llame desde un evento keypress de un textbox tengo que esperar que el formo notificación se desvanezca o lo cierre para que el foco vulva al textbox que lo llamo.

    Solo me gustaría que aparezca pero que que me siga dejando trabajar en el form padre porque para poder seguir trabajando tengo que hacer click en el textbox que lo llamo y en ese momento el mensaje de notificación se oculta 

    Saludos!

     

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    miércoles, 28 de agosto de 2019 21:25
  • Hola Pedro, y si lo lanzas mediante un hilo? para cuando utilizas Guardar en el evento keypres

    ThreadStart KeyGuardar = new ThreadStart(Guardar); 
    
    Thread hilo = new Thread(KeyGuardar); 
    
    hilo.Start(); 
    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    jueves, 29 de agosto de 2019 8:46