none
Como mandar a llamar un metodo que se encuentra en otra clase RRS feed

  • Pregunta

  • Hola muy buenos días a todos.

    Me podrían ayudar  a resolver una duda que tengo,como puedo llamar a un método que se encuentra en otra clase lo hago de esta manera pero al hacerlo que abre otra pantalla y  no me toma en cuenta el método que estoy llamando y no se activan los permisos de el usuario

    agradeceria mucho si alguien me puede ayudar a resolver esta duda.

    frmlogin i = new frmlogin();
    i.GlbActivaPermiso(0);

    jueves, 15 de agosto de 2019 15:55

Respuestas

  • hola

    Es que si vas a llamar a un form debes usar la misma instancia que ya tenias abierta previamente de ese form

    Si haces un "new" abrira un nuevo form

    No se como se comunican esto que quieres realizar, quizas lo invocas de un form a otro, pero podrias

    [WinForms] Verificar si el form esta abierto

    podrias en base al nombre del form ver si este ya esta abierto y recuperar la instancia para invocar la funcionalidad que expone

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 17:07
    • Desmarcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 17:08
    • Marcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 17:08
    miércoles, 21 de agosto de 2019 11:36
  • si necesitas comunica controlers con la UI quizas debas evaluar usar eventos

    entonces desde codigo de las clases expones un evento y antes una accion lanzas esta que estas subscripta desdela UI

    una clase controller o logica NUNCA deberia acceder a un form o funcionalidad de este porque generas dependencias

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 19:16
    miércoles, 21 de agosto de 2019 17:52

Todas las respuestas

  • Hola

    GlbActivaPermiso es public?

    public void GlbActivaPermiso()

    {

    }

    pero si quieres abrir el form tienes que

    i.Show();

    jueves, 15 de agosto de 2019 16:18
  • Hola !! Primero que nada queres llamar a un método que se encuentra dentro de una clase ? O queres llamar a un método que se encuentra dentro de un formulario ?. Indistintamente tiene que tener en los Using referenciado al proyecto que contiene dicha clase o formulario que quieres llamar, el método tiene que tener su modificador en publico también. Con los pasos anteriores ya tendrías que poder llamar tu método. Si tu metodo no funciona, hace un break y fijate si entra o no. A lo mejor si entra en tu método, pero el método tiene una falla en la lógica y por eso dices que no te toma en cuenta el método. 

    Por ejemplo así estoy instanciando mi clase que se encuentra en otro proyecto..

    using Capa_Negocio;
    
    
    private void Cargar()
    {
                clsUsuarios usu = new clsUsuarios();
                List<Usuarios> lst = usu.LeerListado(); //Leer listado es un metodo de la clase clsUsuarios
                this.dtgvPersonal.DataSource = lst;
    }

    Saludos !!

     

    Cervera Nicolás


    jueves, 15 de agosto de 2019 17:04
  • hola

    >>como puedo llamar a un método que se encuentra en otra clase

    pero esa no es una clase normal, esta bien un form en realidad es una class pero tambien tiene representacion visual

    No se que codigo tienes dentro de GlbActivaPermiso() pero si en algun momento invocaste al Show() o ShowDialog() se va a visualizar el form

    >>no me toma en cuenta el método que estoy llamando

    no entiendo a que te refieres con "no me toma", a ver si invocas el metodo tiene que ingresar a su ejecucion en algun momento

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Mareli Hdz martes, 20 de agosto de 2019 21:43
    • Desmarcado como respuesta Mareli Hdz martes, 20 de agosto de 2019 21:43
    jueves, 15 de agosto de 2019 17:09
  • Hola Bueno si es un método que esta en otro formulario lo que pretendo hacer es mandar a llamarlo, pero al momento de hacerlo, como menciono de la siguiente manera me abre dos formularios iguales.

    form2 i = new form2();
    
     i.GlbActivaPermiso(0);
     i.Show();
    
    Como puedes ver aqui me abre dos formularios al momento de iniciar sesion.

    martes, 20 de agosto de 2019 21:55
  • hola

    Es que si vas a llamar a un form debes usar la misma instancia que ya tenias abierta previamente de ese form

    Si haces un "new" abrira un nuevo form

    No se como se comunican esto que quieres realizar, quizas lo invocas de un form a otro, pero podrias

    [WinForms] Verificar si el form esta abierto

    podrias en base al nombre del form ver si este ya esta abierto y recuperar la instancia para invocar la funcionalidad que expone

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 17:07
    • Desmarcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 17:08
    • Marcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 17:08
    miércoles, 21 de agosto de 2019 11:36
  • Hola lo que pasa es que tengo mi contenedor en el cual esta mi login como se muestra en la imagen anterior lo que se supone que  deberia hacer mi programa es que al momento de iniciar sesion, el menu principal se abilite el menustrip.

    intente usar el link que me dejaste en la parte de arriba pero no sucede al momento de dar clic en el boton de aceptar.

    lo que realmento intento es acceder al  metodo que necesito en el login  para que se active al momento de entrar  y que se encuentra en form 2

    miércoles, 21 de agosto de 2019 17:43
  • si necesitas comunica controlers con la UI quizas debas evaluar usar eventos

    entonces desde codigo de las clases expones un evento y antes una accion lanzas esta que estas subscripta desdela UI

    una clase controller o logica NUNCA deberia acceder a un form o funcionalidad de este porque generas dependencias

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Mareli Hdz miércoles, 21 de agosto de 2019 19:16
    miércoles, 21 de agosto de 2019 17:52