如何处理鼠标点击在CefSharp来回导航

本文关键字:CefSharp 导航 鼠标 何处理 处理 | 更新日期: 2023-09-27 18:10:27

我正在使用CefSharp for Windows Forms,我在实现鼠标后退(XButton1)和鼠标前进(XButton2)事件来浏览浏览历史时遇到了问题。

我尝试了以下代码,但MouseClick事件似乎没有被触发:

using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CefSharp.WinForms.Example
{
    public partial class BrowserForm : Form
    {
        private readonly ChromiumWebBrowser browser;
        public BrowserForm()
        {
            InitializeComponent();

            Text = "CefSharp";
            WindowState = FormWindowState.Maximized;
            browser = new ChromiumWebBrowser("http://www.google.com")
            {
                Dock = DockStyle.Fill,
            };
            browser.MenuHandler = new MenuHandler();
            browser.MouseClick += (sender, args) =>
            {
                MessageBox.Show("Button pressed: " + args.Button.ToString());
                if (args.Button.Equals(MouseButtons.XButton1))
                {
                    if (browser.CanGoBack)
                    {
                        browser.Back();
                    }
                }
                else if (args.Button.Equals(MouseButtons.XButton2))
                {
                    if (browser.CanGoForward)
                    {
                        browser.Forward();
                    }
                }
            };
            toolStripContainer.ContentPanel.Controls.Add(browser);
        }
    }
}

如何处理鼠标点击在CefSharp来回导航

我知道这是一个老问题,但我偶然发现它通过谷歌,所以认为它将值得提供一个答案。如果你实现了IContextMenuHandler,你就可以控制ContextMenu。下面的两个链接演示了所需的功能(以及其他一些有用的功能)。

https://github.com/cefsharp/CefSharp/blob/935d3900ba2147f4786386596b62339087ff61b0/CefSharp.WinForms.Example/Handlers/MenuHandler.cs课时

https://github.com/cefsharp/CefSharp/blob/c18f951a97a515df112d67775c767d4222f88c23/CefSharp.WinForms.Example/BrowserTabUserControl.cs L31