方法一:适用于VS2008
1、在解决方案中添加“引用”
选择 COM 下的 Microsoft html object library
2、引入命名空间
using mshtml;
3、添加 WebBrowser 事件
在 WebBrowser 的 LoadCompleted 事件里
mshtml.HTMLDocumentClass dom = (mshtml.HTMLDocumentClass)webBrowserCygj.Document; //定义HTML
dom.documentElement.style.overflow = "hidden"; //隐藏浏览器的滚动条
dom.body.setAttribute("scroll", "no"); //禁用浏览器的滚动条
方法二:适用于VS2010
1、在解决方案中添加“引用”
选择 COM 下的 Microsoft html object library
2、引入命名空间
using mshtml;
3、添加 WebBrowser 事件
在 WebBrowser 的 LoadCompleted 事件里
mshtml.HTMLDocument dom = (mshtml.HTMLDocument)webBrowserCygj.Document; //定义HTML
dom.documentElement.style.overflow = "hidden"; //隐藏浏览器的滚动条
dom.body.setAttribute("scroll", "no"); //禁用浏览器的滚动条
注1:出于MS的某些原因,在VS2010下,HTMLDocumentClass 需更改为HTMLDocument 方可生效。
注2:通过页面代码控制浏览器窗口滚动条
overflow-y:hidden '表示没有垂直滚动条
overflow-x:hidden '表示没有水平滚动条
scroll:no或overflow-x:hidden;overflow-y:hidden或overflow:hidden '让浏览器窗口永远不出现滚动条
例:<BODY scroll="no">
注3:“隐藏浏览器的滚动条”和“禁用浏览器的滚动条”同时使用,方可实现对所有页面有效。
有点难描述说的是什么。大概就是下面这个图:窗体中嵌套一个Webbrowser,现在网页请求关闭
响应MessageHook事件:
this.webBrowser.MessageHook += webBrowser_MessageHook;
IntPtr webBrowser_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if(msg == 130) { //do something } return hwnd; }
这个事件不是EventHander的委托,而是HwndSourceHook的委托。
伟大的VS并没有对其做优化处理,所以在Xaml中响应事件会出错。只能在后台自己写了。