Как обрабатывать щелчок мыши в CefSharp для перемещения назад и вперед

#c# #chromium-embedded #cefsharp

#c# #встроенный хром #cefsharp

Вопрос:

Я использую CefSharp для 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);
        }
    }
}
 

Ответ №1:

Я знаю, что это старый вопрос, но я наткнулся на него через Google, поэтому подумал, что стоит дать ответ. Если вы реализуете IContextMenuHandler , вы можете управлять ContextMenu . Две ссылки ниже демонстрируют, что требуется (и некоторые другие полезные функции).

https://github.com/cefsharp/CefSharp/blob/935d3900ba2147f4786386596b62339087ff61b0/CefSharp .WinForms.Example/Обработчики/menuHandler.cs#L15

https://github.com/cefsharp/CefSharp/blob/c18f951a97a515df112d67775c767d4222f88c23/CefSharp .WinForms.Пример/BrowserTabUserControl.cs#L31