WebBroswer In C#

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

If you want to write into webbrowser in windows form in C#, you have to make reference MSHTML library and use its interface to do so. The trick is, if you did this in ASP or Visual Basic, you can simply put

wb.document.write(sHtml)

where wb is WebBrowser a object and sHtml is a string.

In .Net it works differently. You can create sample project in VB.6 and load it into VB.NET.

It would complains about bad type variable, but will compile and run (surprisingly, if just create such a VB.NET project from the scratch, it will complain and not compile!)

The following approach shows how to make that functionality with the right types.

Put into C# windows form

1. text box txt1 (System.Windows.Forms.TextBox)

2. Web Browser WBresult (AxSHDocVw.AxWebBrowser)

3. button to run the code

4. make reference to MSHTML library

5. add two functions: fillWeb (which does the real job) and redirectWeb(redirects to url, file, or clears)

6. on button click event function put fillWeb("top linebold another line");

7. run the project and click on the button (if you have any errors, they would appear in text box)

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using mshtml;

// ...

// here is the main functionality for web control to get/fill/redirect web

content:

private string getWeb()

{

string s = "";

try

{

object boxDoc = axWebBrowser1.Document;

IHTMLDocument2 hDoc = (mshtml.IHTMLDocument2)boxDoc;

s += hDoc.body.innerText; // or innerHtml

return s;

}

catch(Exception exc)

{

s += exc.Message;

return s;

}

finally

{

}

}

private void fillWeb(string sHTML)

{

redirectWeb("about:blank");

try

{

object[] psa = {sHTML};//could be:{"bold",

"<i>italic</i>"};

IHTMLDocument2 hDoc2 = (IHTMLDocument2)axWebBrowser1.Document;

hDoc2.write(psa);

}

catch(Exception exc)

{

txt1.Text = exc.Message;

}

}

private void redirectWeb(string sUrl)

{

try

{

axWebBrowser1.Visible = true;

axWebBrowser1.BringToFront();

// System.Object nullObject = 0;

// System.Object nullObjStr = "";

// axWebBrowser1.Navigate(sUrl, ref nullObject, ref

nullObjStr, ref nullObjStr, ref nullObjStr);

Object n = null;

axWebBrowser1.Navigate(sUrl, ref n, ref n, ref n, ref n);

}

catch(Exception exc)

{

txt1.Text = exc.Message;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航