如何让ToolTip跟随鼠标?

时间:2011-09-01 19:18:55

标签: c# .net-4.0 tooltip onmousemove

我希望工具提示跟随我的鼠标移动到一个控件上。例如,我们来看一个小组。当鼠标位置在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 个答案:

答案 0 :(得分:3)

不要使用工具提示 - 如果绘制了Panel,请绘制自己的工具提示;否则,使用Panel并回复两者中的MouseMove事件,但忽略e.Location,而是使用System.Windows.Forms.Cursor.PositionPointToClient