我们一般在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控件使用的问题相关推荐

  1. 使用WebBrowser与msHtml开发WinForms下的HtmlEditor控件

    引用COM控件WebBrowser 引用msHtml. BS,还在用vs2003.要是使用2005就不需要使用COM控件. 初始化: With Me.AxWebBrowser1      .Navig ...

  2. 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式

    IE8 在渲染引擎做了很大的改动,新增加一个标准模式 (Standard Mode). 不少软件都内嵌了IE的WebBrowser控件(也就是MSHTML.dll)来显示网页, 当用户机器升级到IE8 ...

  3. WebBrowser控件的高级定制+mshtml

    --> blog:WebBrowser控件的高级定制---以下为三篇重要的参考文献,     第一篇可以禁用了js弹窗和声音     第二篇的引用文献禁用了IE弹窗,但是原文的说明很好      ...

  4. 包含mshtml, SHDocVw, AxSHDocVw的引用以及如何添加axWebBrowser控件到工具箱

    1.添加mshtml引用: 添加下面的引用编译时会引发后面错误 添加正确位置(C:\Program Files (x86)\Microsoft.NET\Primary Interop Assembli ...

  5. WebBrowser控件判断完全加载中DocumentCompleted和Navigated的关系

    WebBrowser控件判断完全加载使用DocumentCompleted是有问题的,所以有人提出可以使用判断DocumentCompleted的次数和Navigated次数完全相等的方法判断是否完全 ...

  6. Winform中将WebBrower浏览器控件由IE内核修改为Chrome的WebKit内核

    场景 Winform中自带一个浏览器控件WebBrower控件,使用此控件可以很轻易的实现一个桌面端的 浏览器. 新建Winform程序,然后在设计页面在工具箱中拖拽一个WebBrower控件. 然后 ...

  7. C#获取类名为Internet_Explorer_Server控件的内容

    为了让大家都能够使用demo,我以IE为测试对象,另外为了突出重点,所以如何获取窗口句柄我就不做演示了(不清楚的童鞋,可以去Google下哈),句柄值我使用spy++获得 大家可以下载demo(附:s ...

  8. 通过webbrowser控件获取验证码

    1.首先介绍下基本控件(拖控件大家都会,我就不一一介绍了),看下图: 2.添加MSHTML引用,步骤如下: 解决方案-右键"引用"-​添加引用-在.NET下找到Microsoft. ...

  9. .NET实现之(部署ActiveX控件—简)

    网上关于安装部署的文章太多,我就不多写那些重复的东西了:这篇文章就简单介绍部署ActiveX控件要注意的细节.本人的".NET实现之(ActiveX插件开发)"一文中介绍了在.NE ...

  10. vs2005的webbrowser控件如何接收鼠标事件

    这个问题来自论坛提问,vs2005的webbrowser控件如何接收鼠标事件,很多事情其实自己动动脑子就有办法的.主要是3步,给dom对象插入js脚本去响应鼠标-〉通过url跳转去通知webbrows ...

最新文章

  1. Java easycms 版本2.0发布
  2. c++ 自定义比较函数,运行时发生segmentation fault
  3. hashset java_Java HashSet clear()方法与示例
  4. 公共语言运行库中的程序集-04强命名的程序集
  5. Docker学习总结(4)——Docker镜像与容器命令
  6. opencv图像连通区域分析
  7. Hive入门学习随笔(一)
  8. Unity3D(七)声音
  9. php针式打印机打多张,如何将多页内容打印在一张A4纸上
  10. magisk卸载内置软件_软件卸载工具的终极武器——Revo Uninstaller
  11. Maven Setting.xml配置文件下载 阿里云镜像 下载可用
  12. Windows debugging tools
  13. linux下kbhit的头文件,linux下kbhit()使用
  14. 谭民机器人_中国科学院大学
  15. 一些好用的APP推荐给你
  16. Pandas 日期处理:生成及去除工作日与节假日
  17. 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门
  18. UDT 最新源码分析(三) -- UDT Socket 相关函数
  19. 直饮加热一体机哪个牌子好,净水器科普
  20. BZOJ 1101([POI2007]Zap-满足x=ay=bgcd(x,y)=d的数对个数)

热门文章

  1. Hadoop入门(一篇就够了)
  2. hadoop 学习心得
  3. 大数据应用案例---用户画像与精准营销
  4. 用电脑上的计算器计算反三角函数
  5. android x5内核使用方法,android 快速教你集成腾讯X5内核
  6. python 使用 config 文件
  7. 微信小程序图片全屏显示
  8. 快收下这份照片模糊变清晰方法攻略
  9. mysql 银行卡卡号长度_卡bin查询sql分享
  10. K3路由器自建服务器,折腾路由器 篇一:K3路由器刷官改固件小白日记