注意:这是关于控件的内置行为,而不是创建双击事件。IE浏览器安装后双击WebBrowser控件不会自动选择文本
我的一个项目使用Windows.Forms.WebBrowser控件作为HTML的编辑器和查看器。它一直工作正常多年,但突然我注意到,在我双击之前,它会自动选择被单击的单词(这不是我的代码,只发生在控件上)。
突然(不完全确定何时),双击控件中的文本(无论是在编辑模式下还是在视图模式下)什么都不做。这很难排除故障,因为它不是我的代码,但是,因为我过去依赖于此功能,所以它现在正在影响我的最终产品。
任何想法最近会改变(在Windows或.Net中)这会影响到这一点(我的应用程序的相同版本在较早的Win7中工作正常,但不是在最新的Win7中)?另外,我怎样才能恢复以前的功能?我必须在DOM上连接我自己的双击,然后开始解析文本以手动选择它(呃!)?
我已经找遍了这个问题的答案,但主要是我只看到如何连接到DOM事件,没有关于最近的变化会导致上述问题)。任何帮助将不胜感激。我在使用VS 2010,VB,Win7 x64,IE 10.0.6,.Net 3.5(不管最新版本是什么)发生问题时(编译出来,所以我怀疑它是VS还是VB)。
当我运行完全相同的代码(编译)在Win7 x86与IE 8(Win7专业版,安装零更新)它工作得很好。
经过一些进一步的测试,在Win7 x86新鲜安装(一切正常),只要我安装IE 10并没有其他任何问题开始发生。所以,我敢肯定,问题在于IE 10
重现步骤:
- 在VS 2010中创建一个新的VB.Net项目,靶向NET 3.5的
- 创建一个用户控件< ---这一步的关键是
- 添加网页浏览器的用户控件
这个代码添加到该用户控件
Public Sub LoadHTML(html As String) WebBrowser1.DocumentText = html Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete Application.DoEvents() Loop WebBrowser1.Document.Body.SetAttribute("contentEditable", "false") End Sub
控件添加到表单
一个按钮添加到窗体具有以下button.Click事件:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click UserControl1.LoadHTML("<html><body>This is a test interesting is it not?</body></html>") End Sub
运行该项目,并单击按钮
- 然后,尝试双击“有趣”一词并注意它没有选择。
如果您直接在窗体上放置webbrowser控件,它将正常工作。问题出在用户控件上(并且在更新到IE10后,这只是一个问题)。
我可以重现使用VS 2010使用.Net 3.5和4.0的问题。 我可以重现使用VS 2012使用.Net 4.5的问题。
如果问题如您所述,修复可能位于IE设置中。 –
@AndrewBarber知道WHICH设置是一个问题会有所帮助。简单安装IE 10就是引起这种行为所必需的 - 不需要设置更改。 – John
我见过其他控件也行为不当 - 一些自定义下拉控件不允许点击列表中的项目。有没有人遇到类似的东西? –