C#窗体 webBrowser控件赋值后无法编辑~~~~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#窗体 webBrowser控件赋值后无法编辑~~~~~相关的知识,希望对你有一定的参考价值。

一个第三方控件,htmleditor,功能为可以为文本设置样式,并生成html代码,主体为webbrowser控件,通过属性达到效果。

但是通过代码给该控件赋值后,控件就像是被锁定了一样,无法编辑,但是可以设置样式。

如果不是通过代码赋值,是通过键盘键入的话,他就是编辑模式,并且输出他的值,输出的是带有html代码的文本。

但是如果是通过代码赋值,只能输出纯文本,任何html代码都没有。

求解决,让该控件可以通过代码赋值也可以编辑。

webbrowser控件赋值后无法编辑。

我所理解的htmleditor控件是一个Asp.Net的服务器控件,你使用的方式是什么样的呢?如果有些代码更好。追问

这个htmleditor是一个窗体的第三方控件- -

追答

能给我看一下这个控件的官方网站么,如果对这个控件一无所知我想谁也无法帮助到你。

能贴一下你的代码么?

追问

这个图片,后缀改为.rar  就是那个实例     可以看一看

追答

我在我的电脑上,点击通过代码赋值按钮后是能够继续进行编辑的,你的IE的版本是多少?

我的操作:启动程序-按下通过代码赋值按钮-输入其他文字-显示-过滤 都能够正常工作。

你的mshtml的版本是多少?Microsoft.mshtml.dll的版本。

追问

7.0.3300.0 ie是ie9 是 win7系统的问题?

追答

我的系统是Win XP,IE 8,在我的电脑上是能够继续输入文字的。你是否能够找一台xp的机器尝试一下??目前我自己机器以及其他同事的机器(都是windows xp)是能够正常执行的。

另外如果不行的话,尝试在HtmlEditor.cs的HtmlEditor类中加入下面代码:
private void SetupBrowser()

(this.webBrowserBody.Document.DomDocument as mshtml.IHTMLDocument2).designMode = "On";


同时在构造函数和Text属性的Set方法中加入该方法的调用

public HtmlEditor()

dataUpdate = 0;
InitializeComponent();
InitializeControls();
SetupBrowser();


public override string Text

get

return webBrowserBody.DocumentText;

set

webBrowserBody.DocumentText = value.Replace("\r\n", "");
SetupBrowser();



这是将文档设为可编辑的状态。

来自:求助得到的回答
参考技术A LZ 我朋友也遇到过这个问题。追问

那你朋友够帅的哈……

C# WPF WebBrowser控件调用Refresh()函数出现异常,导致程序“未响应”并无法继续运行

我使用C# WPF 的WebBrowser控件,让其从一编辑框中读取一本地网页文件(.mht)的路径(URI)并显示,能够正常显示;但是我用Word在外部更改该文件后(已成功保存),点击我设置的一个刷新按钮(只执行Refresh()函数),程序“未响应”并无法继续运行,这能结束进程。请问这应该如何解决?谢谢!

执行Refresh()函数后,在vs页面点击中断按钮,就可以看到程序到底卡在哪,导致未响应,用这个方法可以很快的定位到问题 参考技术A 那就不要刷新,重新Navigate看看; 参考技术B 从用try或是在vs里调试下看看错误是什么

以上是关于C#窗体 webBrowser控件赋值后无法编辑~~~~~的主要内容,如果未能解决你的问题,请参考以下文章

c#添加webBrowser控件,如何实现自动填写打开的网页中的登录帐号,密码,并且自动登陆?

C# WebBrowser控件使用整理

vb 释放Webbrowser控件

c# WebBrowser 控件滚动条

C# webBrowser无法赋值SetAttribute

C#中如何在一个窗体中调用另一个窗体控件中的数据?