在C#中创建HotSpots
…是否可以在C#中创建热点,以便当鼠标超过某个区域时会触发事件?
标准From对象公开OnMouseMove事件。 鉴于您没有热点所在的任何控件,您可以只处理该事件中的坐标:
protected override void OnMouseMove(MouseEventArgs mouseEvent) { string X = mouseEvent.X.ToString(); string Y = mouseEvent.Y.ToString(); //在此处添加代码以将X和Y与您的热点坐标相匹配。 }
创建一个透明的Panel
(真正透明 – 通过在其扩展窗口样式中设置WS_EX_TRANSPARENT位 – 这是如何 ),将其放在您想要的位置在其他控件之上,并在其上处理MouseMove
。
为您希望热点覆盖的控件添加MouseHover事件处理程序。
您可以使用WndProc捕获Windows消息,也可以使用GetCursorPos来获取屏幕上的光标位置。