如何在当前鼠标位置设置工具提示?

Tuy*_*ham 2 c# tooltip winforms

我注册了热键:Ctrl+ Space.热键消息发送至:

private void Hotkey_press()
{
... // I want to show tooltip "Hello" at current mouse location.
}
Run Code Online (Sandbox Code Playgroud)

有没有办法显示这个工具提示,即使鼠标没有指向任何控件,它是在我的Window.Form1之外?

编辑:该工具提示甚至可以显示丢失焦点或隐藏的表单

Moo*_*ght 8

你想要的东西

ToolTip tt = new ToolTip();
IWin32Window win = this;
tt.Show("String", win, mousePosition);
Run Code Online (Sandbox Code Playgroud)

哪里MousePosition可以从MouseEventArgs通道获得

private SomeMouseEventHandler(object sender, MouseEventArgs e)
{
    System.Drawing.Point mousePosition = e.Location;
    ...
}
Run Code Online (Sandbox Code Playgroud)

或使用

System.Drawing.Point mousePosition = Cursor.Position;
Run Code Online (Sandbox Code Playgroud)

此外,您可能希望设置更长的ToolTip显示时间,只需使用该Show方法可用的重载,tt.Show("String", win, mousePosition, 5000);将显示工具提示5秒.

我希望这有帮助.

  • -1因为这仅在表单处于焦点时才有效.此外,需要将`MousePosition`转换为客户端坐标,例如`this.PointToClient(MousePosition)` (2认同)