我有一個使用OpenTk.GLControl的程序。現在在我的聽衆身上,每當鼠標懸停到所述控件上時,說「glControl1」,我想獲得鼠標座標。如何獲取OpenTK.GLControl中的鼠標座標?
這可能嗎?示例代碼如下。
private void glControl1_MouseHover(object sender, EventArgs e)
{
// get the current mouse coordinates
// .........
}
我有一個使用OpenTk.GLControl的程序。現在在我的聽衆身上,每當鼠標懸停到所述控件上時,說「glControl1」,我想獲得鼠標座標。如何獲取OpenTK.GLControl中的鼠標座標?
這可能嗎?示例代碼如下。
private void glControl1_MouseHover(object sender, EventArgs e)
{
// get the current mouse coordinates
// .........
}
我不知道,什麼是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?
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文檔以獲取更多信息。
問題是您使用了錯誤的事件。 WinForms中的許多UI操作會爲每個操作觸發多個事件;懸停用於彈出工具提示等內容。你沒有在Hover中獲得座標,因爲這是不必要的。
你想要的是MouseMove事件。這是用來跟蹤鼠標的位置:
private void glControl1_MouseMove(object sender, MouseEventArgs e)
{
foo = e.X;
bar = e.Y;
}
我不會OpenTk :(工作 –