Scroll Shapes
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form { private Point rectangleTopLeft = new Point(0, 0); private Size rectangleSize = new Size(200, 200); private Point ellipseTopLeft = new Point(50, 200); private Size ellipseSize = new Size(200, 150); private Pen bluePen = new Pen(Color.Blue, 3); private Pen redPen = new Pen(Color.Red, 2); protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics dc = e.Graphics; Size scrollOffset = new Size(this.AutoScrollPosition); if (e.ClipRectangle.Top + scrollOffset.Width < 350 || e.ClipRectangle.Left + scrollOffset.Height < 250) { Rectangle rectangleArea = new Rectangle (rectangleTopLeft + scrollOffset, rectangleSize); Rectangle ellipseArea = new Rectangle (ellipseTopLeft + scrollOffset, ellipseSize); dc.DrawRectangle(bluePen, rectangleArea); dc.DrawEllipse(redPen, ellipseArea); } } public Form1() { this.BackColor = Color.White; this.Size = new System.Drawing.Size(300, 300); this.AutoScrollMinSize = new Size(250, 350); } public static void Main() { Application.Run(new Form1()); } }