當我試圖在可以滾動的面板上繪製一個矩形時,我不知所措。矩形繪製在網格上,所以它們的起始位置四捨五入到最接近的50px。
繪製矩形時,繪製位置在滾動後相對於網格線不正確。
然而,當網格在繪製後滾動時,它會隨着面板一起滾動。滾動的鼠標座標不正確
我試圖抵消鼠標的座標(我正在使用mouseDown,Move和Up事件),但無濟於事。每個矩形都在鼠標下方繪製,然後向右拖動,直到釋放完成繪圖(繪製並隨着鼠標移動增加尺寸)。以下是一部分的五月的事情,我已經厭倦了
Point screenPos = new Point(MousePosition.X, MousePosition.Y);
Point relLocation = grid.PointToClient(screenPos);
Point relLocation = e.Location;
relLocation.Offset(AutoScrollPosition);
當你只滾動窗口的一小部分失效。真正的問題是,如果你隱藏窗口並重新恢復,窗口是否在這種情況下正確繪製?順便說一句,我們需要更多的繪圖邏輯。 –
您也可以通過在表單上放置2個文本框並簡單地將您計算的x和y位置的值存儲在relLocation中來幫助自己,以便您可以直觀地檢查它們是否有意義。 –
我添加了一個截圖,並將更新繪圖邏輯的更多信息 – Nick