خط اول برابر کد زیره :
if (panel1.AutoScrollPosition.Y == panel1.VerticalScroll.Maximum)
y = -20;
else
y = panel1.VerticalScroll.Value;
if توی این کد مکان Y رو با بیشترین حد Scroll مقایسه می کنه . . . .
البته این خط رو برای این گذاشتم که وقتی به پایین Scroll رسید دوباره برگرده بالا ولی نیمه کاره موند!!
بهتره از این کد استفاده کنید :
int y = panel1.VerticalScroll.Value;
panel1.AutoScrollPosition = new Point(panel1.AutoScrollPosition.X, y + 20);
اینجا هم خط اولش مقدار Position عمودی Panel1 رو توی متغیر Y میزاره ,
خط بعد هم Y+20 میکنه , همین.