0

我有一个使用 OpenTk.GLControl 的程序。现在在我的听众上,每次鼠标悬停在所述控件上时,说“glControl1”,我想获取鼠标坐标。

那可能吗?下面的示例代码。

private void glControl1_MouseHover(object sender, EventArgs e)
{
    // get the current mouse coordinates       
    // .........
}
4

3 回答 3

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 文档。

于 2013-07-10T07:59:25.560 回答
1

问题是您使用了错误的事件。WinForms 中的许多 UI 操作会触发每个操作的多个事件;悬停用于弹出工具提示之类的事情。您在 Hover 中没有得到坐标,因为它是不必要的。

你想要的是 MouseMove 事件。这用于跟踪鼠标位置:

    private void glControl1_MouseMove(object sender, MouseEventArgs e)
    {
        foo = e.X;
        bar = e.Y;
    }
于 2013-10-01T00:02:49.427 回答
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?

于 2013-07-09T06:30:53.460 回答