关于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控件使用的问题,如需转载请自行联系原博主。
关于MSHTML控件使用的问题相关推荐
- 使用WebBrowser与msHtml开发WinForms下的HtmlEditor控件
引用COM控件WebBrowser 引用msHtml. BS,还在用vs2003.要是使用2005就不需要使用COM控件. 初始化: With Me.AxWebBrowser1 .Navig ...
- 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
IE8 在渲染引擎做了很大的改动,新增加一个标准模式 (Standard Mode). 不少软件都内嵌了IE的WebBrowser控件(也就是MSHTML.dll)来显示网页, 当用户机器升级到IE8 ...
- WebBrowser控件的高级定制+mshtml
--> blog:WebBrowser控件的高级定制---以下为三篇重要的参考文献, 第一篇可以禁用了js弹窗和声音 第二篇的引用文献禁用了IE弹窗,但是原文的说明很好 ...
- 包含mshtml, SHDocVw, AxSHDocVw的引用以及如何添加axWebBrowser控件到工具箱
1.添加mshtml引用: 添加下面的引用编译时会引发后面错误 添加正确位置(C:\Program Files (x86)\Microsoft.NET\Primary Interop Assembli ...
- WebBrowser控件判断完全加载中DocumentCompleted和Navigated的关系
WebBrowser控件判断完全加载使用DocumentCompleted是有问题的,所以有人提出可以使用判断DocumentCompleted的次数和Navigated次数完全相等的方法判断是否完全 ...
- Winform中将WebBrower浏览器控件由IE内核修改为Chrome的WebKit内核
场景 Winform中自带一个浏览器控件WebBrower控件,使用此控件可以很轻易的实现一个桌面端的 浏览器. 新建Winform程序,然后在设计页面在工具箱中拖拽一个WebBrower控件. 然后 ...
- C#获取类名为Internet_Explorer_Server控件的内容
为了让大家都能够使用demo,我以IE为测试对象,另外为了突出重点,所以如何获取窗口句柄我就不做演示了(不清楚的童鞋,可以去Google下哈),句柄值我使用spy++获得 大家可以下载demo(附:s ...
- 通过webbrowser控件获取验证码
1.首先介绍下基本控件(拖控件大家都会,我就不一一介绍了),看下图: 2.添加MSHTML引用,步骤如下: 解决方案-右键"引用"-添加引用-在.NET下找到Microsoft. ...
- .NET实现之(部署ActiveX控件—简)
网上关于安装部署的文章太多,我就不多写那些重复的东西了:这篇文章就简单介绍部署ActiveX控件要注意的细节.本人的".NET实现之(ActiveX插件开发)"一文中介绍了在.NE ...
- vs2005的webbrowser控件如何接收鼠标事件
这个问题来自论坛提问,vs2005的webbrowser控件如何接收鼠标事件,很多事情其实自己动动脑子就有办法的.主要是3步,给dom对象插入js脚本去响应鼠标-〉通过url跳转去通知webbrows ...
最新文章
- Java easycms 版本2.0发布
- c++ 自定义比较函数,运行时发生segmentation fault
- hashset java_Java HashSet clear()方法与示例
- 公共语言运行库中的程序集-04强命名的程序集
- Docker学习总结(4)——Docker镜像与容器命令
- opencv图像连通区域分析
- Hive入门学习随笔(一)
- Unity3D(七)声音
- php针式打印机打多张,如何将多页内容打印在一张A4纸上
- magisk卸载内置软件_软件卸载工具的终极武器——Revo Uninstaller
- Maven Setting.xml配置文件下载 阿里云镜像 下载可用
- Windows debugging tools
- linux下kbhit的头文件,linux下kbhit()使用
- 谭民机器人_中国科学院大学
- 一些好用的APP推荐给你
- Pandas 日期处理:生成及去除工作日与节假日
- 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门
- UDT 最新源码分析(三) -- UDT Socket 相关函数
- 直饮加热一体机哪个牌子好,净水器科普
- BZOJ 1101([POI2007]Zap-满足x=ay=bgcd(x,y)=d的数对个数)