我已經構建了一個簡單的程序(到目前爲止),該程序有一個大面板作爲程序的「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