首页 > 代码库 > 解决cefsharp在winform中不显示tooltipText问题(网页元素的title提示)
解决cefsharp在winform中不显示tooltipText问题(网页元素的title提示)
1.监听网页属性改变事件
webView.PropertyChanged += webView_PropertyChanged;
2.拖一个ToolTip控件到窗体
3.获取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.webKitBrowser.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.webKitBrowser.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(); })); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。