C sharp - Disparar un evento desde otro formulario

 
Vista:

Disparar un evento desde otro formulario

Publicado por Javier (1 intervención) el 24/05/2019 04:19:45
Hola a todos, en un formulario principal tengo este codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public partial class fjdPrincipal : Form
{
    private int childFormNumber = 0;
    public string IdUsuario = "";
    public string Apellido = "";
    public string Nombre = "";
    public string Acceso = "";
 
    public fjdPrincipal()
    {
        InitializeComponent();
    }
 
    private void fjdPrincipal_Load(object sender, EventArgs e)
    {
        GestionUsuarios();
    }
 
    private void GestionUsuarios()
    {
     ................................................
    }

en mi segundo formulario que es un login de usuarios, tengo lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void btnIngresar_Click(object sender, EventArgs e)
{
    DataTable Datos = nUsuarios.Login(this.txtUsuario.Text, this.txtPassword.Text);
    if (Datos.Rows.Count == 0)
    {
        MessageBox.Show("No Tiene Acceso al Sistema", "adminPDV", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    else
    {
        fjdPrincipal frm = new fjdPrincipal();
        frm.IdUsuario = Datos.Rows[0][0].ToString();
        frm.Apellido = Datos.Rows[0][1].ToString();
        frm.Nombre = Datos.Rows[0][2].ToString();
        frm.Acceso = Datos.Rows[0][3].ToString();
 
        this.Hide();
    }
}

El Login funciona OK, ahora lo que necesito es mejorar el codigo en el btnIngresar para poder disparar el evento GestionUsuarios del formulario principal, alguien me podria decir que tengo que poner en ambos formularios para poder realizarlo.

muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Javier
Val: 96
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Disparar un evento desde otro formulario

Publicado por Javier (40 intervenciones) el 25/05/2019 00:08:57
No se que hace tu evento "GestionUsuarios", lo que veo es que en el evento click de tu botón te falta llamar a la ventana principal, con un SHOW o SHOWDIALOG, dependiendo lo que quieras realizar, creo que una opción es que pongas tu evento GestionUsuarios en un hilo y cuando llames al LOAD de la ventana principal llames a ese hilo, con esto te evitaras que la pantalla se te quede congelada, ya que, dependiendo lo que haga tu evento, podrías notar esa pausa al cargar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Disparar un evento desde otro formulario

Publicado por Javier (1 intervención) el 26/05/2019 02:37:55
Hola, gracias por la respuesta, el formulario principal ya esta cargado, es por ese motivo que no lo llamo con el show o el showdialog, como seria el codigo para poner en un hilo el evento?

gracias nuevamente
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier
Val: 96
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Disparar un evento desde otro formulario

Publicado por Javier (40 intervenciones) el 27/05/2019 19:45:27
A ok, difícil ayudarte si no muestras mejor tu idea o codigo, ejemplo, como llamas a tu ventana login si la ventana pricipal ya esta cargada??? cosa que no comentabas en un inicio, lo mas común es que abras primero el login y después tu ventana principal,entonces, como llamas a tu ventana login, lo haces en el LOAD, desde un botón??

1.- Podrías cargar tu ventana login y que funcione con un dialogresult, así trabajar con las variables en consecuencia a la respuesta.
2.- Podrías tener variables publicas en tu ventana login y llenarlas con los datos al cerrar el login, si tu ventana login la muestras con un showdialog ya tendrías los datos que necesitas.
3.- Podrías retornar un booleano desde el login y llenar una clase estática para obtener las variables del usuario y así consumir tu evento.

Como vez hay varias opciones, algunas mejores otras peores, depende el punto de vista, estoy seguro que varios opinaran o te darán a conocer otras opciones.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar