C# 绘图 滚动条问题

Graphics绘图不考虑滚动条位置,可视区域左上角总是(0,0)

滚动客户区时系统会移动已经绘制的区域,然后触发OnPaint绘制新露出来的部分

这样,原来绘图记录的位置就发生了改变,比如原来在(5,5)绘制了一个点,滚动条向下滚动了一个像素

(5,5)的这个点向上移动到了(5,4),绘图所在控件的AutoScrollPosition为(0,-1)

此时想擦去这个点的话,原来的(5,5)就错了,应该调整为(5,4)

当绘画所在控件里面的子控件移动时,滚动条会自动滚动以适应所需的大小,此时并不触发Scroll事件(此时事件只有用户操作滚动条才触发)

用户操作鼠标滚轮的事件MouseWheel也需要手工编写,设计视图并没有提供

原文地址:https://www.cnblogs.com/shadowpigg/p/14098062.html