最近寫了個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
{
//使用者點選了頁面相關位址,浏覽器位址變更,邏輯處理
}
}