gpt4 book ai didi

c# - ChromiumWebBrowser 禁用右键单击上下文菜单 C#

转载 作者:太空狗 更新时间:2023-10-29 23:59:48 24 4
gpt4 key购买 nike

如何使用 C# 在 Chromium Web 浏览器中禁用右键单击上下文菜单?

我找到了这个 Disable context menu in Chromium Embedded 3 (DCEF3)但我不熟悉语法(我使用的是 C#),而且我在 CefSharp.WinForms.ChormiumWebBrowser 类上没有看到名为 OnBeforeContextMenu 的事件。

最佳答案

我遇到了同样的问题,但由于接口(interface)IMenuHandler(重命名为IContextMenuHandler)发生了一些变化并且不再存在,因此无法再使用上述解决方案

bool OnBeforeContextMenu(IWebBrowser browser);

现在具有以下签名:

void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model);

问题 ( Disable context menu in Chromium Embedded 3 (DCEF3)) 中链接的 SO 问题与 pascal 和 inno 设置脚本有关,但针对 C# 和 ChromiumWebBrowser 调整的可接受答案对我有用。解决方法是在OnBeforeContextMenu的实现中清除模型参数。 IContextMenuHandler 的实现如下所示:

public class CustomContextHandler : IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser browserControl, CefSharp.IBrowser browser, IFrame frame, IContextMenuParams parameters,
IMenuModel model)
{
model.Clear();
}

public bool OnContextMenuCommand(IWebBrowser browserControl, CefSharp.IBrowser browser, IFrame frame, IContextMenuParams parameters,
CefMenuCommand commandId, CefEventFlags eventFlags)
{
return false;
}

public void OnContextMenuDismissed(IWebBrowser browserControl, CefSharp.IBrowser browser, IFrame frame)
{
}
}

然后在创建 chromium 网络浏览器对象的代码中:

browser = new ChromiumWebBrowser(url);
browser.MenuHandler = new CustomContextHandler();

关于c# - ChromiumWebBrowser 禁用右键单击上下文菜单 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27802570/

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