解决cefsharp在winform中不显示tooltipText问题(网页元素的title提示)
1.监听网页属性改变事件
webView.PropertyChanged += webView_PropertyChanged;
2.拖一个ToolTip控件到窗体
3.在webView_PropertyChanged这个事件处理函数中,获取TooltipText并显示出来
//隐藏toolTip if (this.IsHandleCreated) { this.BeginInvoke(new MethodInvoker(() => { if (this.IsHandleCreated && !this.IsDisposed) { if (this.toolTip1.Active) { this.toolTip1.Hide(this); } } })); } if (e.PropertyName == "TooltipText") //tooltipText改变事件 { string tooltipText = this.webView.TooltipText; Point elementPos = new Point(Cursor.Position.X - this.Location.X, Cursor.Position.Y - this.Location.Y); if (!String.IsNullOrEmpty(tooltipText)) { this.Invoke(new MethodInvoker(() => { System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); timer.Interval = 600; timer.Tick += (timer_sender, timer_e) => { Point nowPos = new Point(Cursor.Position.X - this.Location.X, Cursor.Position.Y - this.Location.Y); //if ((nowPos.X <= elementPos.X + 20 && nowPos.X >= elementPos.X - 20) && (nowPos.Y <= elementPos.Y + 20 && nowPos.Y >= elementPos.Y - 20)) //鼠标停留了500ms(范围限定在一定范围) if (this.webView.TooltipText == tooltipText) //600毫秒后,tooltipText没变 { this.toolTip1.Show(tooltipText, this, nowPos.X + 15, nowPos.Y + 15); } (timer_sender as System.Windows.Forms.Timer).Stop(); (timer_sender as System.Windows.Forms.Timer).Dispose(); }; timer.Start(); })); } }
分类:
WebKit
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库