关于MSHTML控件使用的问题

我们一般在Winform的开发中,需要使用HTML的地方,很多时候,需要用到WebBrowser这个控件,这个控件是引用了MSHTML.dll这个COM类库的,在开发的时候感觉很好,很强大,可是发布给客户的时候,很多时候,就因为这个COM控件,会出现很多令人头痛的问题,因为这个控件导致的问题,也有很多解决方法,但是问题还是经常发生。

我曾经修改完成过一个HTML Editor的控件(WinForm界面开发之“HTML内容编辑控件” ),用来集成HTML邮件发送的,后来发现在很多使用客户的电脑上,点击该软件后没有反应,或者直接跳出错误对话框,原因就是使用WebBrowser这个控件,而这个控件就是属于MSHTML.dll程序集的,弄了很久也没有能够在虚拟机上(只安装了Dotnet framework2.0),因此不知道究竟哪里出了问题,因为我已经能把网上所有方法都尝试过了,包括把程序集部署到Assembly中,在开发环境中把C:\Program Files\Common Files\Merge Modules\vs_piaredist.exe 拷贝到虚拟机上进行安装,好像也是不行的,郁闷了很久。。。。

下面是一些解决问题的文章:

Microsoft.mshtml到底是什么 

mshtml组件引用的问题 

如果不使用微软这个自带的HTML浏览器控件,那么还有一个代替的选择,就是使用另外一个COM控件,但是相对比较小,不依赖于MSHTML.dll程序集的。

参考文章地址:http://www.codeproject.com/KB/miscctrl/csEXWB.aspx?msg=2814607#xx2814607xx 

这个控件很好,不过好像对支持中文有点问题。实现HTML编辑的控件界面是:

 

其源码地址是在:http://code.google.com/p/csexwb2/downloads/list 上。

本人在使用中,如果在Edit编辑框中有中文字符,在Edit和Source中切换的时候,如果在Source的选项输入一些其他的字符 ,就会得到乱码,因此也是很麻烦的事情,本来想修改其源码的,发现也是一个C++的源码,实现思路很复杂。

不过如果我们只是把Source中的HTML作为一个展示,而不做修改的话,那么就不会出现乱码,不过这个不是好的方法,因为我们如果不能修改HTML的话,干脆就只要一个Edit中的HTML编辑页面就得了。

 其他的模仿实现HTML编辑的控件或者程序,总的来说就是界面太丑,功能太简单了,一般是没有什么用处的。

本文转自博客园伍华聪的博客,原文链接:关于MSHTML控件使用的问题,如需转载请自行联系原博主。

时间: 2024-08-01 18:36:04

关于MSHTML控件使用的问题的相关文章

在vb.net中使用webbrowser控件和mshtml以及流操作体会(vb.net内嵌IE,拆取 Web 页)

web|webbrowser控件 需求为:到某一网站抓取查询结果.环境为vb.net 从0开始,一开始具体需要用到.net里的具体什么东东都不清楚,于是就一顿瞎搜索.又是google,又是baidu,yisou......胡乱搜的内容有.net ie,拆分网页 .net,内嵌ie等等.没过多久能得知webbrowser这个控件. 其中对我有帮助比较大的文章是http://www.microsoft.com/china/msdn/Archives/workshop/scrape.asp 只是这里介

ASP.NET技巧:將datagrid控件內容輸出到excel文件

asp.net|datagrid|datagrid控件|excel|技巧 一個將datagrid控件內容輸出到excel文件的demo. 生成EXCEL文件#region 生成EXCEL文件public void setToExcel(){//            Response.Clear(); //            Response.Buffer= true; //            Response.Charset="utf-8";         if (efor

WebBrowser控件捕捉DHTML事件

dhtml|web|webbrowser控件 作者:Tuenhai.com MSN: king#tuenhai.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http://www.Tuenhai.com/ 开发工具:Microsoft Visual Studio .NET 2003 操作系统:Windows XP 原文:http://www.devx.com/vb2themax/tip/18798 和其他控件一样,我们可以用WebBrowser控件来

Webbrowser控件史上最强技巧全集

原文:Webbrowser控件史上最强技巧全集 Webbrowser控件史上最强技巧全集 VB调用webbrowser技巧集 1.获得浏览器信息: Private Sub Command1_Click() WebBrowser1.Navigate "http://www.applevb.com" End Sub Private Sub Command2_Click() Dim oWindow Dim oNav Set oWindow = WebBrowser1.Document.par

WebBrowser控件使用详解

原文:WebBrowser控件使用详解 方法 说明 GoBack 相当于IE的"后退"按钮,使你在当前历史列表中后退一项 GoForward 相当于IE的"前进"按钮,使你在当前历史列表中前进一项 GoHome 相当于IE的"主页"按钮,连接用户默认的主页 GoSearch 相当于IE的"搜索"按钮,连接用户默认的搜索页面 Navigate 连接到指定的URL Refresh 刷新当前页面 Refresh2 同上,只是可以指定

如何: 通过HTML文档对象模型访问文档中的ActiveX控件的属性 .

如何: 通过HTML文档对象模型访问文档中的ActiveX控件的属性   此文章的信息应用于: Microsoft Internet Explorer (编程) 版本4.0, 4.01, 4.01 SP1, 4.01 SP2, 5, 5.01, 5.5,6.0 概要 CSDN文档中心文章 用 MSHTML 的一点经验 111222(原作) 说明了如何访问在HTML文档对象模型中的网页的元素.内容.但是,有时候开发者实际上需要访问的是网页中ActiveX控件的属性.方法和事件.例如,你在网页载入之

如何将Table Web控件中的数据导成Excel????---急!急!急!急!急!

问题描述 我用Table服务器控件绑定数据然后在客户端将Table中的数据已Excel导出结果打开看没任何数据,郁闷!请高手们帮我看看怎么回事!!下面是我导成Excel的代码://定义文档类型.字符编码Response.Clear();Response.Buffer=true;Response.Charset="GB2312";//下面这行很重要,attachment参数表示作为附件下载,您可以改成online在线打开//filename=FileFlow.xls指定输出文件的名称,注

WPF webbrowser控件点击事件的获取

问题描述 我在一个WPF项目里使用webbrowser控件打开一个网页,由于鼠标的点击事件不起作用,因此使用了js,如下:mshtml.HTMLDocumenthtmlDoc=myWebBrowser.Documentasmshtml.HTMLDocument;htmlDoc.parentWindow.execScript("document.onmousedown=function(e){window.location.href='cmd://onmousedown'}","

将webkit内核封装为duilib的浏览器控件

转载请说明出处,谢谢~~          原本的duilib是自带浏览器控件的,但是使用了IE内核,我在做仿酷狗音乐播放器时,在右侧乐库要用到浏览器控件,而我使用自带的IE控件却发现了不少缺点,这也是duilib一直没有解决的,编程群里的朋友也反映IE控件不好用.而目前最常用的浏览器内核一个是IE内核,另一个是webkit内核.             先简单介绍一下这个webkit内核            WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla