none
ejecutar método de un form abierto desde otro form diferente RRS feed

  • Pregunta

  • Buen dia, quisisera saber alguna manera de ejecutar un método el cual consiste en dar click a un elemento dentro de una pagina de un webbrowser, pero desde otro form diferente a donde se encuentra el webbrowser, es decir mi browser esta en form1 y desde un form2 quiero ejecutar un metodo el cual consiste en dar click a un elemento "id" de la pagina que tiene cargado el webbrowser. Dentro del mismo form1 lo puedo hacer sin problemas pero desde el form2 no me deja, ya instancie el form1 pero aun así no lo he conseguido. Estare inmensamente agradecido en que me puedan ayudar. Saludos

    fragmento del método en el form2 que da click a un elemento del webbrowser en el form1:

    private void crg_certificado_Click(object sender, EventArgs e)
            {
              form1._instancia.webbrowser.Document.GetElementById("btnCertificate").InvokeMember("click");
            }


    domingo, 5 de noviembre de 2017 5:20

Respuestas

  • hola

    no deberias invocar la funcionlidad de un form al otro de esa forma, deberias aplicar esta tecnica

    Comunicar Formularios

    como veras el form1 implementa una interfaz y es por medio de esta que se comunican los form, pero la accion en el webbrowser la realizas en el propio form1

    el problema es como generas dependencias entre los forms al acceder a los controles que este define

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 6 de noviembre de 2017 10:25

Todas las respuestas

  • Hola Benji, para el caso en el Form1 puedes utlizar Internal ej:

    Form1

     internal void Web1(string www, string Clik)
            {
                webBrowser1.Document.GetElementById(www).InvokeMember(Clik);
            }

    Y en un button del form2 ejecutas

    Form2

      private void button1_Click(object sender, EventArgs e)
            {
                Form1 frn = new Form1();
                frn.Web1("btnCertificate", "click");          
            }

    Prueba y me dices

    Saludos

    domingo, 5 de noviembre de 2017 12:44
  • hola

    no deberias invocar la funcionlidad de un form al otro de esa forma, deberias aplicar esta tecnica

    Comunicar Formularios

    como veras el form1 implementa una interfaz y es por medio de esta que se comunican los form, pero la accion en el webbrowser la realizas en el propio form1

    el problema es como generas dependencias entre los forms al acceder a los controles que este define

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 6 de noviembre de 2017 10:25