WebBrowser DocumentText getting problem ...

  • Thread starter - Electronic.HR -
  • Start date
E

- Electronic.HR -

I have very strange and stupid problem with .NEt's webBrowser control...

If I do this:
----------------------------------
private void btnGoogle_click(object sender, EventArgs e)

{

webBrowser1.Navigate(http://www.google.com);

}
----------------------------------

and after that try this:

-----------------------------------

string html;

html = webBrowser1.DocumentText.ToString();

------------------------------------

I get error: "The system cannot find the file specified. (Exception from
HRESULT: 0x80070002)"


BUT


If I open Google (or any other page), and if I then click any link in
webBrowser, and after that try to get html content, all works fine...



Is there any way to get HTML content while navigating automaticly (with my
buttons)..

Hope I was clear :)

Thanks in advance.

Electronic.HR
 
N

Nicholas Paldino [.NET/C# MVP]

The content is fetched in the web browser asynchronously. You should
wait until the downloading is done before you try and access the
DocumentText property. You can do this by subscribing to the
DocumentCompleted event and then getting the text from the document from
there.
 
E

- Electronic.HR -

Hm...good idea.. but it doesn't work either...
I done this
<CODE>
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{

string html;

MessageBox.Show("Document Completed");
html = webBrowser1.DocumentText.ToString();
MessageBox.Show(html);

}
</CODE>


first message box appears, but second one doesn't!
(In this case nothing happens. In this case there's no Exception showing,
but second message box doesn't appear) ?!?
 
N

Nicholas Paldino [.NET/C# MVP]

Well, by default, exceptions thrown by event handlers on controls are
swallowed. You will have to wrap in a try/catch block to figure out what
the exception is (you can look at it in the debugger too).
 
E

- Electronic.HR -

When I click on a link in webBrowser, only then DocumentText fills with
content...

What's difference between:
- clicking on a link in webBrowser and
- calling webBrowser1.Navigate(...);

?
 
E

- Electronic.HR -

Nicholas Paldino said:
Well, by default, exceptions thrown by event handlers on controls are
swallowed. You will have to wrap in a try/catch block to figure out what
the exception is (you can look at it in the debugger too).

Try/catch gives no result....no exception..code just continues...
....
Now, when I call webBrowser1.Navigate(...), and watch DocumentText in
debugger after DocumentCompleted event this is what I get:

<DOCUMENT_TEXT>
- DocumentText '((System.Windows.Forms.WebBrowser)(sender)).DocumentText'
threw an exception of type 'System.IO.FileNotFoundException' string
{System.IO.FileNotFoundException}
- base {"The system cannot find the file specified. (Exception from HRESULT:
0x80070002)":null} System.IO.IOException {System.IO.FileNotFoundException}
- FileName null string
- FusionLog null string
- Message "The system cannot find the file specified. (Exception from
HRESULT: 0x80070002)" string

</DOCUMENT_TEXT>

but.. when I click on a link in webBrowser and then look at DocumentText
after DocumentCompleted event i get this:
- DocumentText -> it's value is HTML content of a page, and type is
string...all is prefect :-(


I really don't have idea why is this happening...

p.s. Thanks for helping, Nicholas :)
 
N

Nicholas Paldino [.NET/C# MVP]

Im only suggesting wrapping the first call in the event handler to the
DocumentText property, not the whole thing. Regardless, if that second line
was not executing, then an exception could be the onlyh reason.
 
E

- Electronic.HR -

Hm.. I can't believe.. LOL...

Problem is that webBrowser control MUST be FOCUSED before taking
DocumentText... :)
When I click on a link in browser it get's automaticly focused, that's why I
always got DocumentText when I clicked link..
but When I call navigate, webbrowser doesn't get focused, so i have to focus
it manually before taking DocumentText...

Anyway, thanks a lot for helping! ;)

BR
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top