Olá,
Uma página web pode ser composta, e na maioria das vezes é, por vários HtmlDocuments dentro dela. Então, cada vez que um desses Documentos é carregado completamente o evento LoadCompleted (DocumentCompleted no Win Forms) é chamado.
No fim das contas, o que você tem são múltiplas chamadas para esse evento, o que não é conveniente, pois as vezes, com 40% da página carregada você já obtem chamadas para o evento.
Mas, há uma forma bem simples de resolver isso:
private void wb_LoadCompleted(object sender, NavigationEventArgs e)
{
if(e.Uri == ((WebBrowser)sender).Source)
{
// Aqui você executa o código após a página ser totalmente carregada
}
}
Devo ressaltar que nunca testei isso. Esse código é uma conversão do que é factível e funcional no Win Forms, conforme artigo:
WebBrowser: Previnindo múltiplas chamadas do evento DocumentCompleted | Herbert.Lausmann
Espero ter ajudado.
Herbert Lausmann
