我有一个使用OpenTk.GLControl的程序。现在在我的监听器上,每当鼠标悬停到所述控件时,说“glControl1”,我想得到鼠标坐标。
这可能吗?示例代码如下。
private void glControl1_MouseHover(object sender, EventArgs e)
{
// get the current mouse coordinates
// .........
}
答案 0 :(得分:2)
OpenTK.GLControl继承自System.Windows.Forms.Control。您可以使用以下代码段来获取鼠标位置:
private void glControl1_MouseHover(object sender, EventArgs e)
{
Control control = sender as Control;
Point pt = control.PointToClient(Control.MousePosition);
}
有关详细信息,请参阅MSDN WinForms文档。
答案 1 :(得分:0)
我不知道,什么是OpenTk.GLControl,但是:
我在Windows Phone上处理滑动事件并执行了此操作:
private void PhoneApplicationPage_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
//string to save coordinates of tap
TapCoordinatesXBegin = e.GetPosition(LayoutRoot).X.ToString();
TapCoordinatesYBegin = e.GetPosition(LayoutRoot).Y.ToString();
}
我不记得这样的事件MouseHover - 也许MouseEnter?
答案 2 :(得分:0)
问题是您使用的是错误的事件。 WinForms中的许多UI操作会触发每个操作的多个事件;悬停用于弹出工具提示之类的东西。你没有在Hover中获得坐标,因为它是不必要的。
你想要的是MouseMove事件。这用于跟踪鼠标位置:
private void glControl1_MouseMove(object sender, MouseEventArgs e)
{
foo = e.X;
bar = e.Y;
}