我正在开发一个表单,可以在鼠标点击时获取并绘制点。但是我不确定如何正确获取和添加滚动偏移量,以便可以正确地绘制点。例如,当前当我在左上角坐标为(0,0)的位置添加一个点时,该点会随着滚动而重绘并移动,而不是停留在原始创建位置。我已经设置了
this.AutoScroll = true
并且已经手动设置了最小尺寸
this.AutoScrollMinsSize = new Size(800,600);
这是目前我的鼠标点击事件的样子:
if (e.Button == MouseButtons.Left)
{
Point newPoint = new Point(e.X, e.Y);
p.X += this.AutoScrollOffset.X;
p.Y += this.AutoScrollOffset.Y;
this.Invalidate();
}
如何正确使用AutoScrollOffset属性,使得点的位置不会随着滚动而移动?
需要说明的是,我的程序还覆盖了Scroll事件,以便在滚动事件发生时重新绘制,从而解决了绘图在离开可见区域后消失的问题。