다음을 통해 공유


Visual Basic/C# Workaround: WebBrowser DBLClick Word

What is this article about?

*Recently in the MSDN forums (link below), it was discovered that the web browser control (IE 10 based) exhibits the following unexpected behavior while used on a UserControl:
MSDN Forums - web browser control standard double-click behavior not working

Certain properties modified using the property grid in design mode seem to "break" at least one known ability of the web browser control (The ability to highlight a word with a double-click)
*

  • Known properties to cause the error
    • WebBrowser.AllowWebBrowserDrop
    • WebBrowser.ScriptErrorsSuppressed

The mentioned properties have a default value at design time. When that default value is modified using the property grid at design time, the IDE automatically generates code in the InitializeComponent sub of whatever control/form you are editing. When you change one of the defaults mentioned properties that code gets added to the designer, because it is no longer the default, well at this point, even if you use the designer to change it back, instead of deleting that entire line it added, it just changes the value being set in that line.

Evidence points out that the error is not caused by a specific value set to the mentioned properties, but more along the lines of the fact that value changed. This means that at the time of the unexpected behavior, the value could be true, false, or nothing and the same error will occur. So basically, really what causes the problem is the existence of code in the initializeComponent sub that modifies the mentioned properties (regardless of the value being modified to).

*It is quite possible other properties could have a similar issue... Which I imagine the soon to be explained workaround would also apply...

Workaround

Very simple

  • Do not use the property grid to modify the mentioned properties.
  • Comment out any designer generated code that may have modified the mentioned properties.
  • Find a load event to modify the properties from code, instead of using the property grid (designer).
  • Modifying the web browser's properties from the user control's load event might work.
  • Instead, if it doesn't, then modify the properties from the load event of the form that contains the user control.

References

This article is a brief overview of the problem. Visit the original forum post here.

Please view my other Technet Wiki articles

I hope you find this helpful!

See Also

An important place to find a huge amount of Visual C# related articles is the TechNet Wiki itself. The best entry point is Visual C# Resources on the TechNet Wiki


Visitors Counter