2014-06-26 33 views
5

Używam CefSharp dla Windows Forms i mam problem z implementacją zdarzenia Back Back (XButton1) i myszy do przodu (XButton2) do nawigacji po przeglądaniu historia.Jak obsługiwać kliknięcie myszą w CefSharp do nawigacji wstecz i do przodu

Próbowałem poniższy kod, ale zdarzenie MouseClick nie wydaje się być wywołany:

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); 
     } 
    } 
} 

Odpowiedz

1

wiem, że to jest stare pytanie, ale natknąłem się nim za pośrednictwem Google, więc pomyślałem, że warto byłoby dostarczenie odpowiedzi . Jeśli zaimplementujesz IContextMenuHandler, możesz kontrolować ContextMenu. Dwa linki poniżej pokazują, co jest wymagane (i kilka innych użytecznych funkcji).

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

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