如何让 ToolTip 跟随鼠标?

Posted

技术标签:

【中文标题】如何让 ToolTip 跟随鼠标?【英文标题】:How to make the ToolTip follow the mouse? 【发布时间】:2011-11-08 16:10:52 【问题描述】:

我希望工具提示跟随我的鼠标在一个控件上移动。例如,让我们看一个面板。当鼠标位置在 Rectangle(100, 100, 50, 50) 内时,我希望 ToolTip 可见并且始终位于鼠标的右下方。当它在这个矩形之外时,我希望 ToolTip 不可见。

我试图这样做:

ToolTip toolTip = new ToolTip();
int x, y;

protected override void OnMouseMove(MouseEventArgs e)

      if ((x == e.X) && (y == e.Y) && (new Rectangle(100, 100, 50, 50).Contains(e.Location))
          toolTip.Show("some text", this, x + 10, y + 10);
      else
      
          x = e.X;
          y = e.Y;
          toolTip.Hide(this);
      

但是有一个问题 - 当我的工具提示出现时 - 它获得了焦点,然后 OnMouseMove(MouseEventArgs e) 不再起作用。我试图在该功能结束时将焦点放在面板上,但它不起作用。我也尝试了一些 OnMouseHover 的技巧,但效果是一样的。

【问题讨论】:

【参考方案1】:

不要为此使用工具提示 - 如果在面板上绘制,请绘制您自己的工具提示;否则,请使用 Panel 并响应两者的 MouseMove 事件,但忽略 e.Location 而使用 System.Windows.Forms.Cursor.PositionPointToClient

【讨论】:

我忘了画画。它工作得很好,速度很快,完全没有闪烁!谢谢你:)

以上是关于如何让 ToolTip 跟随鼠标?的主要内容,如果未能解决你的问题,请参考以下文章

关于wpf中popup跟随鼠标移动显示

关于ExtJs中tooltip的鼠标事件

怎样可以让ToolTip直接显示 而不用将鼠标放上去

如何让 ToolTip 出现在浮动 CPaneDialog 的前台?

怎么才能让鼠标后有跟随的特效

怎么让Gridview每个单元显示Tooltip提示