none
Como llamar a una función en otro formulario?

    Question

  • Hola amigos, este es mi primer post y escribo por lo siguiente:

    Tengo 2 Forms FrmClientes y FrmClientesBuscar, en FrmClientes es una venta con unos botones para Agregar, Editar, Buscar registros y debajo tengo un DataGridView ademas e incluido una funcion para listar clientes segun un filtro dado aqui el codigo:

    public bool ListarRegistros(String vFiltro)
        {
          bool resp = false;
          dgv.DataSource = _regs.Buscar(vFiltro);
          fila = dgv.Rows.Count - 1;
          dgv.Rows[fila].Selected =true;
          resp = (dgv.Rows.Count > 0);
          return resp;
        }

    Ahora bien FrmClientesBuscar es una ventana que tiene 2 cajas de texto para hacer la busqueda por DNI y la otra por Nombre de Cliente y 2 botones Buscar y Cancelar ahora vamos al punto. Al hacer click en el boton Buscar del formulario FrmClientesBuscar quiero que se ejecute la función que esta en FrmClientes que se llama ListarRegistros.

    Esta es mi pregunta sres. como lo haría.

    Saludos

    Ricardo Torres

    Wednesday, March 14, 2012 2:54 PM

Answers

  • Al hacer click en el boton Buscar del formulario FrmClientesBuscar quiero que se ejecute la función que esta en FrmClientes que se llama ListarRegistros.

    podrias aplciar esta tecnica

    Comunicar formularios de forma desacoplada

    o sea defines una interface con el metodo ListarRegistros() y usas esto para implementarla en el

    de esta forma podras accederla desde la instancia desde el otro form sin acoplar los formularios

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Wednesday, March 14, 2012 2:58 PM
  • las dos tecnicas son validas tanto con delegados como con interfaces

    lo implemente con interfaces solo porque el hecho de invocar un metodo que respete un contrato refleja algo acordado

    pero solo por eso

    si puedo postear un trozo de codigo para saber si estoy en lo correcto en lo que respecta a la creacion de clases

    si codigo puedes poner, porque no podria


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Wednesday, March 14, 2012 4:12 PM

All replies

  • Al hacer click en el boton Buscar del formulario FrmClientesBuscar quiero que se ejecute la función que esta en FrmClientes que se llama ListarRegistros.

    podrias aplciar esta tecnica

    Comunicar formularios de forma desacoplada

    o sea defines una interface con el metodo ListarRegistros() y usas esto para implementarla en el

    de esta forma podras accederla desde la instancia desde el otro form sin acoplar los formularios

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Wednesday, March 14, 2012 2:58 PM
  • Hola Leando, gracias por el tiempo y la rapidez en responder mi duda por otro lado me sugieren usar delegados y quiza hay una y mil formas de hacer lo que necesito pero cual es la mas eficiente y la mejor viendolo desde el punto de vista de una correcta escritura de codigo.

    Estoy migrando 3 proyectos de Vb6 a C# y estoy tirandome de los pelos para acostumbrarme a este lenguaje y bueno aprendiendo ya llevo apenas 1 mes, dandole. Ademas me gustaria saber si puedo postear un trozo de codigo para saber si estoy en lo correcto en lo que respecta a la creacion de clases.

    Saludos

    Ricardo Torres

    Wednesday, March 14, 2012 4:06 PM
  • las dos tecnicas son validas tanto con delegados como con interfaces

    lo implemente con interfaces solo porque el hecho de invocar un metodo que respete un contrato refleja algo acordado

    pero solo por eso

    si puedo postear un trozo de codigo para saber si estoy en lo correcto en lo que respecta a la creacion de clases

    si codigo puedes poner, porque no podria


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Wednesday, March 14, 2012 4:12 PM
  • Hola Leandro, creo que queda claro todo muchas, muchisimas gracias.

    Abrire un nuevo post para analizar un trozo de codigo con Ud.

    Saludos

    Ricardo Torres
    Wednesday, March 14, 2012 4:18 PM