vs2005的webbrowser控件如何接收鼠标事件
2012-12-29 10:38
330 查看
这个问题来自论坛提问,vs2005的webbrowser控件如何接收鼠标事件,很多事情其实自己动动脑子就有办法的。主要是3步,给dom对象插入js脚本去响应鼠标-〉通过url跳转去通知webbrowser-〉截获跳转事件去c#中处理
示例代码:
using System;
using System.Windows.Forms;
using mshtml;
using SHDocVw;
namespace WindowsApplication2
{
public partial
class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private
void Form1_Load(
object sender, EventArgs e)
{
this
.webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
this .webBrowser1.Navigate(
"http://www.google.com" );
SHDocVw.WebBrowser wb =
this .webBrowser1.ActiveXInstance as
SHDocVw.WebBrowser;
wb.NavigateComplete2 += new
SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2);
}
void webBrowser1_Navigating(
object sender, WebBrowserNavigatingEventArgs e)
{
if (e.Url.ToString().ToLower().Trim(
'/' ) == "cmd://onmousedown"
)
{
MessageBox.Show(
"jinjazz 路过" );
e.Cancel = true
;
}
}
void wb_NavigateComplete2(
object pDisp, ref
object URL)
{
mshtml.IHTMLDocument2 doc = (
this .webBrowser1.ActiveXInstance as
SHDocVw.WebBrowser).Document as
mshtml.IHTMLDocument2;
doc.parentWindow.execScript( "document.onmousedown=function(e) { window.location='cmd://onmousedown'}"
, "javascript" );
}
}
}
示例代码:
using System;
using System.Windows.Forms;
using mshtml;
using SHDocVw;
namespace WindowsApplication2
{
public partial
class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private
void Form1_Load(
object sender, EventArgs e)
{
this
.webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
this .webBrowser1.Navigate(
"http://www.google.com" );
SHDocVw.WebBrowser wb =
this .webBrowser1.ActiveXInstance as
SHDocVw.WebBrowser;
wb.NavigateComplete2 += new
SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2);
}
void webBrowser1_Navigating(
object sender, WebBrowserNavigatingEventArgs e)
{
if (e.Url.ToString().ToLower().Trim(
'/' ) == "cmd://onmousedown"
)
{
MessageBox.Show(
"jinjazz 路过" );
e.Cancel = true
;
}
}
void wb_NavigateComplete2(
object pDisp, ref
object URL)
{
mshtml.IHTMLDocument2 doc = (
this .webBrowser1.ActiveXInstance as
SHDocVw.WebBrowser).Document as
mshtml.IHTMLDocument2;
doc.parentWindow.execScript( "document.onmousedown=function(e) { window.location='cmd://onmousedown'}"
, "javascript" );
}
}
}
相关文章推荐
- 捕获 WebBrowser 控件的鼠标事件
- 判断鼠标是否在接收键盘事件的控件上
- c# 给窗体添加MouseEnter事件,可鼠标移到任意控件均会产生MouseEnter事件,如何识别是哪个产生的呢?
- 如何阻止控件接收键盘事件
- VB 捕获 WebBrowser控件的鼠标和键盘事件
- [WPF - 之一问一答系列] 如何从WPF的WebBrowser控件中获得WebResponse内容?为何WebBrowser控件的Navigated事件参数NavigationEventArgs的
- 捕获 WebBrowser 控件的鼠标事件
- [c#]如何在form的webbrowser控件中获得鼠标坐标
- 浅析c#中如何在form的webbrowser控件中获得鼠标坐标
- 鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件
- [c#]如何在form的webbrowser控件中获得鼠标坐标
- [WPF - 之一问一答系列] 如何从WPF的WebBrowser控件中获得WebResponse内容?为何WebBrowser控件的Navigated事件参数NavigationEventArgs的WebResponse属性始终为null?
- GUI系统如何确定鼠标事件所属的控件
- C++实现WebBrowser控件中对鼠标点击事件的监听,并获取所点击标签的超链接
- WTL中CStatic如何接收鼠标事件
- 用webbrowser控件做一个资源管理器,如何得到IE控件中选中(鼠标多选)的文件名称列表?
- 用webbrowser控件做一个资源管理器,如何得到IE控件中选中(鼠标多选)的文件名称列表?
- WebBrowser控件处理PreviewKeyDown事件的bug
- ocx控件在网页中如何获得键盘事件
- Activity是如何接收到touch事件的(窗口与用户输入系统)