none
Como detectar o click de um determinado botão no webBrowser. RRS feed

  • Pergunta

  • Desejo criar uma validação tipo quando a pessa click em determinado botão na pagina
    executar um processo no meu projeto C#, no botão tem o id = idSIButton9

    tipo assim

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
      {
    
    
    if(webBrowser1.Document.GetElementById("idSIButton9").InvokeMember("Click"))
    {
    
    time.start();
    
    }else{}
    
    }
    

     

     

     

    Quem pode ajuda..

     

     

    }


    segunda-feira, 29 de agosto de 2011 02:55

Respostas

  • Com este código, a tooltip é apresentada quando se clica no botão:

    public Form1()
    {
      InitializeComponent();
    }
    
    protected override void OnLoad(EventArgs e)
    {
      base.OnLoad(e);
    
      this.webBrowser1.DocumentText = "<html><body><div style='padding:50px;text-align:center'><input type=button id=button value=Button></div></body></html>";
    }
    
    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
      var button = webBrowser1.Document.GetElementById("button");
    
      if (button != null)
      {
        button.Click += new HtmlElementEventHandler(button_Click);
      }
    }
    
    private void button_Click(object sender, HtmlElementEventArgs e)
    {
      toolTip1.Show("I've been clicked", this, e.ClientMousePosition, 10000);
    }
    


    Paulo Morgado
    terça-feira, 30 de agosto de 2011 00:00

Todas as Respostas

  • A chamada a webBrowser1.Document.GetElementById("idSIButton9") obtem o elemento HTML com o ID idSIButton9. Ao invocar o membro Click (.InvokeMember("Click")) estás a iinvocar uma função desse elemento chamada Click.

    Para subscreveres o evento Click de um determinado elemento, tens de fazer algo deste género (não testado):

    private void webBrowser1_DocumentCompleted(object source, WebBrowserDocumentCompletedEventArgs e)
    {
      var button = webBrowser1.Document.GetElementById("idSIButton9");
    
      if (button != null)
      [
        button.Click += webBrowser_idSIButton9_Click;
      }
    }
    
    private void webBrowser_idSIButton9_Click(object source, HtmlElementEventArgs e)
    {
      time.start();
    }
    

    Paulo Morgado
    segunda-feira, 29 de agosto de 2011 11:07
  • Caro amigo ainda não funcionou não da erro porem não executa o time.
    segunda-feira, 29 de agosto de 2011 14:57
  • Porquê? Porque button em webBrowser1_DocumentCompleted é null e o evento nunca é subscrito ou porque nunca chega a invocar webBrowser_idSIButton9_Click?
    Paulo Morgado
    segunda-feira, 29 de agosto de 2011 22:39
  • ele não envoca o webBrowser_idSIButton9_Click
    segunda-feira, 29 de agosto de 2011 23:24
  • Com este código, a tooltip é apresentada quando se clica no botão:

    public Form1()
    {
      InitializeComponent();
    }
    
    protected override void OnLoad(EventArgs e)
    {
      base.OnLoad(e);
    
      this.webBrowser1.DocumentText = "<html><body><div style='padding:50px;text-align:center'><input type=button id=button value=Button></div></body></html>";
    }
    
    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
      var button = webBrowser1.Document.GetElementById("button");
    
      if (button != null)
      {
        button.Click += new HtmlElementEventHandler(button_Click);
      }
    }
    
    private void button_Click(object sender, HtmlElementEventArgs e)
    {
      toolTip1.Show("I've been clicked", this, e.ClientMousePosition, 10000);
    }
    


    Paulo Morgado
    terça-feira, 30 de agosto de 2011 00:00