设为首页 收藏本站
查看: 753|回复: 0

Winform 下使用WebBrowser的HTML编辑控件—WinHtmlControl 在win7 IE9下的问题记录

[复制链接]

尚未签到

发表于 2015-5-18 13:37:14 | 显示全部楼层 |阅读模式
  解决这个问题 多亏了这位@liust 兄弟 http://www.iyunv.com/somtomking/archive/2012/03/02/2376800.html
  
  
  问题是这样的,有一个需要用到富文本的地方,由于是winform的程序,而且程序是上一代老员工留下的,错误百出,现在要尽量修复,至少保证能正常使用,于是就开始一点点问题修复.
  
  在win7 64位系统下出现无法激活编辑状态,或者说无法获得光标,总之无法写入任何字符就是了.  
  
  开始怀疑是32位和64位的原因,  编译了一个64位的版本测试,结果还是不行.
  
  找到了@liust 仁兄的一篇文章,豁然开朗,原来是ie9在捣鬼,还不是64位的原因,  由于win7 64位只能安装ie9 所以问题还是得解决.
  
  直接复制下面的代码,似乎是有些用,但是产生了其他问题
  
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.Version.Major >= 9)
{
webBrowser1.Document.Write(webBrowser1.DocumentText);
doc.designMode = "On";
}
}
  当然博主忘了说 要注册事件的.
要在private void SetupBrowser() 里  注册事件
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

  由于我的系统是上一代老员工留下的,所以在DocumentCompleted 事件里有一些其他的代码.
  
  导致出现了一个新的问题. "该文档已被修改,是否保存修改结果?"
DSC0000.png

  
  出现了这个问题,再继续搜索,走了一些弯路
  webBrowser1.Document.Write(webBrowser1.DocumentText); 应该是这句惹得祸
  但是如何又能加载数据,又可以避免在这个地方修改控件的值呢,  我的想法应该是在设置On之前就把数据加载好
  
  在调试中发现次触发焦点事件时首先会走到这个函数
  private void SetupBrowser(bool edit)
  
  在这个函数里有一个标志 edit
  如果为真 则设置了 doc.designMode = "On"
  之后又做了一些其他的操作,没有细看
  
  为什么明明设置了"On"了 到了DocumentCompleted 又要再设置一次呢?
  与其在那猜测,还不如调试呢,于是装上IE9, 开始调试
  
  发现程序在IE9下跑到DocumentCompleted 时   ie9下的designMode为"Inherit"
  
  难怪又要再设置一次"On" 于是根据SetupBrowser(bool edit) 这个里面的edit  在DocumentCompleted 中修改了一下代码
  其中toolStrip.Visible 是控件的工具条是否显示,由于是个全局变量,所以就直接拿来用了,因为toolStrip.Visible = edit ; 否则楼主是想自己建个全局变量来保存edit的状态的  if (toolStrip.Visible)
{
    if (doc.designMode != null && doc.designMode != "On")
        doc.designMode = "On";
  }


  
  
  
  
  其实我这个项目也算个特例,不一定能帮到所有人,但是希望能帮上一部分人吧~~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-68155-1-1.html 上篇帖子: win7平台下使用MASMPlus搭建汇编环境 下篇帖子: 删除win7打开方式中的推荐程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表