Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Vs 2008 - DocumentCompleted

    Ciao a tutti,
    ho il seguente problema:
    ho creato un form e in esso ho inserito l'oggetto WebBrowser il quale carica una pagina web da un indirizzo che definisco.

    Domanda: Come faccio a sapere esattamente quando finisce il caricamento della pagina web nell'oggetto WebBrowser per far partire un nuovo processo o eseguire un'evento?

    Qualcuno potrebbe consigliare di utilizzare la routine
    "Private Sub WebBrowser_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEv entArgs) Handles WebBrowser.DocumentCompleted"
    PURTROPPO però non è esattamente così cioè, ho verificato anche con un contatore, e facendo il debug, il processo entra più volte nella routine così non riesco ad essere certo di quando far partire una nuova azione.

    Forse mi manca qualcosa o forse c'è una routin differente che posso utilizzare... non so chiedo a voi.

    Ho cercato di essere più chiaro possibile in ogni caso rispondo subitissimo .... o quasi.

    Ciao e Grazie

  2. #2
    Per curiosità: che sito è ? (se lo puoi rivelare ovviamente). Ho provato con vari siti e l'evento viene chiamato solo una volta.


    Ciao

  3. #3
    Ciao, purtroppo è su intranet con https.

    Magari può essere d'aiuto sapere che il processo è così formato:

    1) Carica il sito web su https:\\..... ;
    2) Nella pagina caricata cerca dei tag definiti (per esempio: he.GetAttribute("TabIndex") = "0" And he.GetAttribute("name") = "j_username" );
    3) Riconosciuti questi tag li implementa (per esempio: he.SetAttribute("value", "pippo.pluto@topolandia.it") dopodichè esegue un evento (per esempio: he1.InvokeMember("click"));
    4) E' PROPRIO QUI che sorge il problema ovvero esegue tutto ma dentro questa routine

    Private Sub WB_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEv entArgs) Handles WB.DocumentCompleted
    URLTxt.Text = WB.Document.Url.AbsoluteUri
    TextBox1.Text = TextBox1.Text + 1
    End Sub

    l'oggetto TextBox1.Text mi restituisce 2 o a volte 3.

    Che faccio?

    GRAZIE

    P.S. In effetti hai ragione, quando carica la pagina il valore della TextBox1.Text è sempre 1.

  4. #4
    Nell'evento DocumentCompleted chiama una procedura, in cui svolgi tutte le tue operazioni oppure crea un thread diverso in cui elaborare i dati.


    Ciao

  5. #5
    Ciao
    non ho capito bene come fare...
    riesci a dirmi qualcosa in più?

    Grazie Ciao

  6. #6
    Semplicemente così:
    codice:
      
        Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            Elabora()
        End Sub
    
        Private Sub Elabora()
            'ciclo di elaborazione
            MsgBox("Fine")
        End Sub
    Non penso che l'elaborazione sia così complessa e lunga da rendersi necessario l'uso di un altro thread, quindi prova così.


    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.