我已经构建了一个简单的程序(到目前为止),该程序有一个大面板作为程序的“WorkArea”。我在上面画一个网格,有一些功能可以将光标对准网格上的最近点。我在窗口底部有一个状态栏,它显示了我在面板上的当前位置。但是,无论我在哪里滚动(假设垂直条相对于顶部为10%,水平为25%),它会显示与实际窗口相关的光标位置。获取光标在滚动条面板上的位置
我有一个处理这个事件的OnMouseMove:
private void WorkArea_MouseMove(object sender, MouseEventArgs e)
{
GridCursor = grid.GetSnapToPosition(new Point(e.X, e.Y));
toolStripStatusLabel1.Text = grid.GetSnapToPosition(new Point(e.X, e.Y)).ToString();
Refresh();
}
它的工作原理,我期望得到光标的点,它绘制到正确的地方,等等。但是,如果我滚动出来,我仍然可以得到相同的读数。我可以在垂直和水平滚动条中间滚动一半,将光标放在左上角,读取0,0,当它应该更像5000,5000(面板10k乘10k) 。
如何才能获得关于其滚动条的面板内的绝对位置?
所以'WorkArea'是一个面板,对吗?什么是'GridCursor','Grid','GetSnapToPosition'。 AutoScroll是否打开? – TaW