gpt4 book ai didi

.net - 如何覆盖右键单击 winforms WebBrowser 控件时出现的上下文菜单?

转载 作者:行者123 更新时间:2023-12-03 02:17:03 26 4
gpt4 key购买 nike

当您右键单击 WebBrowser 控件时,会出现标准 IE 上下文菜单,其中包含“后退”、“查看源代码”等选项。

如何让我自己的 ContextMenuStrip 出现? WebBrowser.ContextMenuStrip 不适用于此控件。

最佳答案

该站点上的许多其他解决方案听起来很难做到,因为它是一个 COM 对象......并建议添加一个新类“ExtendedWebBrowser”。对于这个任务来说,事实证明非常简单。

在添加 Web 浏览器控件的代码中,添加 DocumentCompleted 事件处理程序。

    WebBrowser webBrowser1 = new WebBrowser();
webBrowser1.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

定义这些事件处理程序(更改 contextMenuStrip 以匹配您创建的事件处理程序的名称)。

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = (WebBrowser) sender;
browser.Document.ContextMenuShowing += new HtmlElementEventHandler(Document_ContextMenuShowing);
}

void Document_ContextMenuShowing(object sender, HtmlElementEventArgs e)
{
// If shift is held when right clicking we show the default IE control.
e.ReturnValue = e.ShiftKeyPressed; // Only shows ContextMenu if shift key is pressed.

// If shift wasn't held, we show our own ContextMenuStrip
if (!e.ReturnValue)
{
// All the MousePosition events seemed returned the offset from the form. But, was then showed relative to Screen.
contextMenuStripHtmlRightClick.Show(this, this.Location.X + e.MousePosition.X, this.Location.Y + e.MousePosition.Y); // make it offset of form
}
}

注意:我的覆盖执行以下操作: * 如果右键单击时按住 Shift,则显示 IE 返回值。 * 否则,它显示 contextMenuStripHtmlRightClick(本示例中未显示定义)

关于.net - 如何覆盖右键单击 winforms WebBrowser 控件时出现的上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com