最近写了个CefSharpd的客户端嵌套web的程序,发现CefSharpd的单击事件没法响应,好么,那把这个Click事件写在事件列表里干啥?糊弄人吗这不是?

想来想去,想到了个替代方案,使用计时器替代,既然是浏览器和点击事件,肯定少不了地址的变更,chromium内核,我是直接在窗体加载里面写的,界面上就拖了一个timer控件:
窗体加载事件的代码:
private CefSharp.WinForms.ChromiumWebBrowser open { get; set; }
/// <summary>
/// 当前地址
/// </summary>
public string current { get; set; }
private void Form1_Load(object sender, EventArgs e)
{
//设置全屏
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
//打开计时器
timer1.Interval = 100;
timer1.Start();
//实例化
open = new CefSharp.WinForms.ChromiumWebBrowser(url);
//设置大小样式
open.Dock = DockStyle.Fill;
//获取当前地址
current = open.Address;
this.Controls.Add(open);
}
效果:
在timer_Tick事件里,监听浏览器地址:
private void timer1_Tick(object sender, EventArgs e)
{
var str=open.Address;
if(str==current){
//浏览器当前地址没变,不处理
}
else
{
//用户点击了页面相关地址,浏览器地址变更,逻辑处理
}
}