前端之家收集整理的这篇文章主要介绍了
c# – 如何防止工具提示在自定义控件中闪烁?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我做了一个
自定义控件,当条件满足时,我想
显示一个工具
提示:
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
var plannedItem = GetPlannedItemByPosition(e.Location);
if (plannedItem != null)
_tooltip.SetToolTip(this,plannedItem.Description);
else
_tooltip.RemoveAll();
}
此代码工作正常,除了工具提示闪烁的面孔.
这个自定义控件描绘了OnPaint事件中的所有信息,也许这与它有关?如果是这样,我怎样才能防止工具提示闪烁?
在鼠标光标位置
显示工具
提示时会发生这种情况.只要
提示窗口出现,Windows就会注意到鼠标位于该窗口中并发布了MouseMove消息.这使得工具
提示消失了.这使Windows将MouseMove消息发送到您的控件,运行OnMouseMove()
方法.这使得工具
提示再次出现. Etcetera,你会看到工具
提示迅速闪烁.
通过以下任何方法解决此问题:
>显示工具提示远离鼠标位置,因此它不会与鼠标光标重叠>仅在需要更改时更新/显示工具提示>将控件的Capture属性设置为true,以便工具提示不会获得MouseMove消息
原文链接:https://www.f2er.com/csharp/98458.html