c# - 如何让工具提示跟随鼠标?

标签 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);
      }
}

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

最佳答案

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

关于c# - 如何让工具提示跟随鼠标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275342/

相关文章:

c# - 如何读取使用 cmd.exe 运行的命令的输出

c# - 从二进制转换为 XML 序列化而不需要类型

css - 将 css 类或 id 分配给 cakephp 中的工具提示

javascript - Angular 2 工具提示应在移动设备或调整窗口大小时自动调整位置

css - 在 svg 中为行添加悬停工具提示

c# - 使用序列化从 XML 文件读取到 C# 类

c# - 我已将 cnic 从 tbl_1 复制到 tbl_2,如果 tbl_2 中存在 cnic,则将密码存储在 tbl_2 中。但密码没有存储在 tbl_2 中

c# - 如何获取当前登录用户的广告显示名称

c# - C#(DotNet Core)中指针的 volatile 读/写

c# - SQL 输出存储过程不适用于 ExecuteReader