将内存文本加载到WebBrowser控件中
时间:2020-03-06 14:53:20 来源:igfitidea点击:
在.Net WebBrowser控件上,我看到的将页面加载到该控件的唯一方法是设置URL属性。但是我想给它一些我已经在内存中的HTML代码,而无需先将其写到文件中。有什么办法吗?还是有任何控件可以做到这一点?
解决方案
我们需要DocumentText属性:
http://msdn.microsoft.com/zh-CN/library/system.windows.forms.webbrowser.documenttext.aspx
?
来自http://www.codeguru.com/forum/showpost.php?p=1691329&postcount=9:
另外,我们还应该提供以下几点:
- 不要在构造函数中设置DocumentText。使用Form_Load或者我们自己的方法。如果在构造函数中设置DocumentText,则将无法在应用程序中的任何位置再次设置它。确保检查"表单设计器"是否也未进行设置。
- 每个方法调用只能设置一次DocumentText。这很奇怪,很可能是一个错误,但这是事实。例如:在for循环中设置DocumentText仅在循环的第一次迭代中正确设置。但是,我们可以创建一个小的方法来将DocumentText设置为传入的字符串,然后在for循环中调用此方法。
同样,通常,在可以使用Stream的任何地方,都可以使用MemoryStream封装内存中的数据。
我们可以使用WebBrowser.DeocumentText(http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.documenttext.aspx)或者WebBrowser.DocumentStream(http://msdn.microsoft.com/ zh-cn / library / system.windows.forms.webbrowser.documentstream.aspx)以更改当前文档中的HTML。如果我们没有文档,则可能需要导航到about:blank。