如何在左键单击时显示 WebBrowser 控件上下文菜单
How to show WebBrowser control context menu on left-click
WebBrowser 控件有一个可以设置为上下文菜单的 ContextMenuStrip 属性。但是这个菜单是右键出现的,左键怎么显示呢? WebBrowser控件没有Click
事件,WebBrowser.Document
点击事件的MousePosition
不准确。这似乎取决于鼠标悬停的元素以及浏览器滚动条是否显示在正确的位置。
这是给你的一些代码。您正在寻找的是可以使用事件处理程序实现的。如果您需要帮助,请在评论中提问。
this._browser.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted);
...
private void browser_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
{
this._browser.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
}
...
void Body_MouseDown(Object sender, HtmlElementEventArgs e)
{
switch(e.MouseButtonsPressed)
{
case MouseButtons.Left:
//your code
break;
}
}
您可以为 Click
event or other mouse events of Document
and show the context menu at Cursor.Position
分配处理程序。
您还可以阻止默认点击操作 e.ReturnValue = false;
。
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
this.webBrowser1.Document.Click += Document_Click;
}
void Document_Click(object sender, HtmlElementEventArgs e)
{
//To prevent the default click action you can uncomment next line:
//e.ReturnValue = false;
this.contextMenuStrip1.Show(Cursor.Position);
}
WebBrowser 控件有一个可以设置为上下文菜单的 ContextMenuStrip 属性。但是这个菜单是右键出现的,左键怎么显示呢? WebBrowser控件没有Click
事件,WebBrowser.Document
点击事件的MousePosition
不准确。这似乎取决于鼠标悬停的元素以及浏览器滚动条是否显示在正确的位置。
这是给你的一些代码。您正在寻找的是可以使用事件处理程序实现的。如果您需要帮助,请在评论中提问。
this._browser.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted);
...
private void browser_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
{
this._browser.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
}
...
void Body_MouseDown(Object sender, HtmlElementEventArgs e)
{
switch(e.MouseButtonsPressed)
{
case MouseButtons.Left:
//your code
break;
}
}
您可以为 Click
event or other mouse events of Document
and show the context menu at Cursor.Position
分配处理程序。
您还可以阻止默认点击操作 e.ReturnValue = false;
。
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
this.webBrowser1.Document.Click += Document_Click;
}
void Document_Click(object sender, HtmlElementEventArgs e)
{
//To prevent the default click action you can uncomment next line:
//e.ReturnValue = false;
this.contextMenuStrip1.Show(Cursor.Position);
}