我想知道是否有可能以某种方式在使用MouseHover事件的空桌面上的固定点上找到应用程序表单外的ToolTip弹出窗口,当然如果事件对ToolTip很有用,不确定。或者任何其他方式,如果可能的话
我不是要求如何显示另一个表单作为此目标的选项。
答案 0 :(得分:4)
您可以使用以下任一选项:
处理自己显示和隐藏ToolTip
。您可以使用MouseHover
在所需位置展示ToolTip
,然后使用MouseLeave
隐藏它。
使用MoveWindow
Windows API方法,强制工具提示显示在特定位置而非默认位置。
选项1
您可以处理控件的MouseHover
和MouseLeave
事件,并以这种方式在桌面窗口的特定位置显示ToolTip
:
private void control_MouseHover(object sender, EventArgs e)
{
var control = (Control)sender;
var text = toolTip1.GetToolTip(control);
if (!string.IsNullOrEmpty(text))
toolTip1.Show(text, control, control.PointToClient(new Point(100, 100)));
}
private void control_MouseLeave(object sender, EventArgs e)
{
var control = (Control)sender;
toolTip1.Hide(control);
}
选项2
作为我之前为align right edges of a control and ToolTip提供的另一个选项,您可以将OwnerDraw
的{{1}}属性设置为ToolTip
并处理控件的true
事件。使用Draw
Windows API方法将MoveWindow
移动到所需位置:
ToolTip
答案 1 :(得分:1)
听起来最终你想要的是一个盒子,当你将鼠标悬停在GUI上的某些特定项目上时,它会显示一些信息。您还要说您希望信息显示在固定点上。
与使用工具提示实现此目的相反,我会执行以下操作:
sender
(控制您正在悬停),选择要在固定位置显示的信息。我见过人们在其他一些程序中这样做......比如,RealTerm。如果您愿意,可以尝试一下,看看在尝试此解决方案之前的感受。
另一方面,如果您必须使用工具提示。您可以使用ToolTip.Show的重载来选择位置。