bidfun Posted May 12, 2013 at 05:16 PM Report #506996 Posted May 12, 2013 at 05:16 PM Boa Tarde, Ando aqui às voltas, mas depois de muitas pesquisas e testes até à data nada resultou apesar destas duvidas serem muito comuns: 1.º - Como faço para carregar uma página na totalidade (webbrowser1.navigate) e só depois da mesma estar totalmente carregada as seguintes instruções sejam executadas? 2.º - Num textbox multiline, como faço para a linha de cima da textbox ser a linha mais recente evitando que a informação mais recente não esteja visível? Cumprimentos Artur Pereira Public Sub Btt_Importar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btt_Importar.Click WebBrowser1.Navigate("URL") ' 1 #Questão - Esperar "URL" carregar na totalidade e a seguir continuar a execução Dim var1, var2 As String Dim linha As String Try var1 = WebBrowser1.document.GetElementById(xpto1).InnerText Var2 = WebBrowser1.document.GetElementById(xpto2).InnerText linha = var1 & "|" & var2 Txt_listagem.Text &= Environment.NewLine & linha ' 2 #Questão - Numa texbox multiline, como fazer para o ultimo item ser sempre o de cima na texbox? Catch ex As Exception End Try End Sub
eduardo carvalho Posted May 14, 2013 at 06:20 PM Report #507353 Posted May 14, 2013 at 06:20 PM 1 - podes usar o evento DocumentCompleted do browser 2 - experimenta assim Txt_listagem.Text = linha & vbcrlf & Txt_listagem.Text espero ter ajudado
bidfun Posted May 16, 2013 at 12:17 PM Author Report #507623 Posted May 16, 2013 at 12:17 PM Boa Tarde, Eduardo graças à tua ajuda a 2.ª questão ficou solucionada, obrigado. Quanto à primeira questão ainda não consegui solucionar. Já tentei com o evento: Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted não funciona, o GetElementById é processado antes de a página carregar na integra e a informação extraída não é completa. Já tentei colocar junto com o evento DocumentCompleted o seguinte código: [/size] If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then End If mas mesmo assim não está a funcionar, não sei se tem a ver com o numero de frames do url que carrego, se houver alguém que me possa ajudar agradecia. Já tentei colocar um timer para atrazar, dar tempo para o carregamento da página, mas esta situação não me satisfez pois corro o risco de ou dar muito tempo, ou de o tempo definido não ser o suficiente para o carregamento do url, o mesmo depende da velocidade da net. Cumprimentos Artur Pereira
electric Posted May 25, 2013 at 07:07 PM Report #508991 Posted May 25, 2013 at 07:07 PM Pode parecer estupido mas vou dar a minha opinião, quando usas [b]If WebBrowser1.ReadyState = WebBrowserReadyState.Complete [b]Then [b]End [b]If este so é chamado uma vez , se nao esta este nao funciona... eu criava um timer com 1 segundo por exemplo o if no interior, e obviamente apos o if dar certo o timer parava e so voltaria a ser activado quando voltases a usar o browser :\ Espero ter ajudado 🙂
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now