I've WinForms form with panel, there is CefWebBrowser control. How to make CefWebBrowser insensitive to keyboard and pass keys to form correctly and disable context menu?
http://stackoverflow.com/questions/1665 ... ey-of-form
Moderator: fddima
public sealed partial class SliderManager
{
private SlideForm _form;
private System.Windows.Forms.Panel _panel;
private Xilium.CefGlue.WindowsForms.CefWebBrowser _Chrome;
private class SlideForm : Form
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Escape))
{
this.BeginInvoke((MethodInvoker)delegate { this.Close(); });
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
public SliderManager()
{
this._form = new SlideForm();
this._form.TopMost = true;
this._form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this._form.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this._form.ShowInTaskbar = false;
this._form.Size = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size;
this._panel = new System.Windows.Forms.Panel();
this._panel.BorderStyle = System.Windows.Forms.BorderStyle.None;
this._form.Controls.Add(this._panel);
this._panel.Parent = this._form;
this._panel.BackColor = System.Drawing.Color.LimeGreen;
this._form.BackColor = System.Drawing.Color.Maroon;
this._panel.Size = this._form.Size;
this._Chrome = new Xilium.CefGlue.WindowsForms.CefWebBrowser();
this._Chrome.StartUrl = "2ip.ru";
this._Chrome.Parent = this._panel;
this._Chrome.Dock = DockStyle.Fill;
this._Chrome.BringToFront();
}
public void Show()
{
this._form.Show();
Slide slide = new Slide();
}
public void SetDecreaseBounds(int leftMargin, int rightMargin, int topMargin, int bottomMargin)
{
this._panel.Top += topMargin;
this._panel.Left += leftMargin;
this._panel.Width -= 2*rightMargin;
this._panel.Height -= 2*bottomMargin;
}
}
amaranth wrote:Can you share a little example of using CefKeyboardHandler and CefContextMenuHandler ?
Thank you!
amaranth wrote:Is there a handler that lock follow link by user, such property in default WebBrowser named AllowNavigation? Thanks.
fddima wrote:OnBeforeNavigation in CefRendererHandler.
internal sealed class CefDeleteRenderProcessHandler: CefRenderProcessHandler
{
private readonly CefWebBrowser _core;
public CefDeleteRenderProcessHandler(CefWebBrowser core)
{
_core = core;
}
protected override bool OnBeforeNavigation(CefBrowser browser, CefFrame frame, CefRequest request, CefNavigationType navigationType, bool isRedirect)
{
if (navigationType == CefNavigationType.LinkClicked)
{
return false;
}
else
{
return base.OnBeforeNavigation(browser, frame, request, navigationType, isRedirect);
}
}
}
internal sealed class CefDeleteRenderProcessHandler: CefRenderProcessHandler
{
private readonly CefWebBrowser _core;
public CefDeleteRenderProcessHandler(CefWebBrowser core)
{
_core = core;
}
protected override bool OnBeforeNavigation(CefBrowser browser, CefFrame frame, CefRequest request, CefNavigationType navigationType, bool isRedirect)
{
if (navigationType == CefNavigationType.LinkClicked)
{
return true;
}
else
{
return false;
}
}
}
internal sealed class DemoApp : CefApp
{
private readonly CefWebBrowser _core;
private readonly CefDeleteRenderProcessHandler _delRenderProcessHandler;
protected override void OnBeforeCommandLineProcessing(string processType, CefCommandLine commandLine)
{
;
}
public DemoApp()
{
_delRenderProcessHandler = new CefDeleteRenderProcessHandler(_core);
}
protected override CefRenderProcessHandler GetRenderProcessHandler()
{
return _delRenderProcessHandler;
}
}
Users browsing this forum: No registered users and 13 guests