首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ChromiumWebBrowser禁用右击上下文菜单VB .Net

ChromiumWebBrowser禁用右击上下文菜单VB .Net
EN

Stack Overflow用户
提问于 2019-10-26 20:27:00
回答 3查看 837关注 0票数 0

需要禁用ChromiumWebBrowser右键单击VB .Net中的上下文菜单.

我尝试了许多来自官方文档的代码示例,并将代码从C转换为VB,但仍然无法使其工作。

请向我展示一些示例代码,以禁用右击,并避免vb .Net中的拖放.Net。

类文件

代码语言:javascript
运行
复制
Public Class CustomMenuHandler

Public Sub OnBeforeContextMenu(ByVal browserControl As IWebBrowser, ByVal browser As CefSharp.IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal model As IMenuModel)
    model.Clear()
End Sub

Public Function OnContextMenuCommand(ByVal browserControl As IWebBrowser, ByVal browser As CefSharp.IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal commandId As CefMenuCommand, ByVal eventFlags As CefEventFlags) As Boolean
    Return False
End Function

Public Sub OnContextMenuDismissed(ByVal browserControl As IWebBrowser, ByVal browser As CefSharp.IBrowser, ByVal frame As IFrame)

End Sub

End Class

呼叫类

代码语言:javascript
运行
复制
browser = New ChromiumWebBrowser("google.com")
browser.MenuHandler = New CustomMenuHandler
panel1.Controls.Add(browser)

'CefSharp.IContextMenuHandler'.错误:附加信息:“Project.CustomMenuHandler”类型的对象不能转换为

类型

EN

回答 3

Stack Overflow用户

发布于 2020-05-03 18:14:25

这是我在社会上的第一次回答或回答。

我找了好几个小时,找到了一个解决办法

所以您希望首先实现IContextMenuHandler

之后,您希望在每个函数之后实现IContextMenuHandler。

代码语言:javascript
运行
复制
Imports System
Imports CefSharp

Imports System.Windows.Forms

Public Class MyCustomMenuHandler
Implements IContextMenuHandler

Public Sub OnBeforeContextMenu(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal model As IMenuModel) Implements IContextMenuHandler.OnBeforeContextMenu
    model.Clear()
End Sub

Public Function OnContextMenuCommand(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal commandId As CefMenuCommand, ByVal eventFlags As CefEventFlags) As Boolean Implements IContextMenuHandler.OnContextMenuCommand
    Return False
End Function


Public Sub OnContextMenuDismissed(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame) Implements IContextMenuHandler.OnContextMenuDismissed
End Sub

Public Function RunContextMenu(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal model As IMenuModel, ByVal callback As IRunContextMenuCallback) As Boolean Implements IContextMenuHandler.RunContextMenu
    Return False
End Function
End Class
票数 3
EN

Stack Overflow用户

发布于 2019-10-27 00:08:32

首先,您的CustomMenuHandler类应该实现所需的接口,如下所示:

代码语言:javascript
运行
复制
Public Class CustomMenuHandler implements IContextMenuHandler

这能帮你解决这个问题。如果您正在寻找替代方案,您可以简单地捕获MouseDown事件,检查鼠标中按下的键是否为鼠标右键(MouseButton.Right),并使用e.Handled = True处理单击事件;

希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2020-09-08 15:04:28

这是正确的解决办法。用Browser.MenuHandler = New CustomMenuHandler()来调用它

代码语言:javascript
运行
复制
Imports System
Imports CefSharp

Imports System.Windows.Forms
Public Class CustomMenuHandler
    Implements CefSharp.IContextMenuHandler
    Public Sub OnBeforeContextMenu(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal model As IMenuModel) Implements IContextMenuHandler.OnBeforeContextMenu
        model.Clear()
    End Sub
    Public Function OnContextMenuCommand(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal commandId As CefMenuCommand, ByVal eventFlags As CefEventFlags) As Boolean Implements IContextMenuHandler.OnContextMenuCommand
        Return False
    End Function
    Public Sub OnContextMenuDismissed(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame) Implements IContextMenuHandler.OnContextMenuDismissed
    End Sub

    Public Function RunContextMenu(ByVal browserControl As IWebBrowser, ByVal browser As IBrowser, ByVal frame As IFrame, ByVal parameters As IContextMenuParams, ByVal model As IMenuModel, ByVal callback As IRunContextMenuCallback) As Boolean Implements IContextMenuHandler.RunContextMenu
        Return False
    End Function
End Class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58574456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档