public partial class FormScroll : Form
{
Pen pen = new Pen(Color.Black);
Rectangle recE = new Rectangle(0, 0, 100, 200);
Rectangle recR = new Rectangle(200, 200, 100, 200);
public FormScroll()
{
InitializeComponent();
this.AutoScaleMode = AutoScaleMode.Font;
//正常显示,而且图形的右侧和下侧还会出现空白区域。因为图像显示区域为(400,400)
//this.AutoScrollMinSize = new Size(500, 500);
//设置为窗体的高度和宽度的时候,会出现滚动条,但是图形不能显示完全。
//this.AutoScrollMinSize = new Size(this.Width, this.Height);
//此时不会出滚动条,因为最小滚动区域小于窗体大小。
this.AutoScrollMinSize = new Size(200, 200);
this.AutoScroll = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var dc = e.Graphics;
Size s = new Size(AutoScrollPosition);
System.Diagnostics.Debug.WriteLine(s.Width + ":" + s.Height);
if (e.ClipRectangle.Top + s.Height < 300)
{
var nrecE = new Rectangle(recE.Location + s, recE.Size);
dc.DrawEllipse(pen, nrecE);
var nrecR = new Rectangle(recR.Location + s, recR.Size);
dc.DrawRectangle(pen, nrecR);
}
//e.Graphics.TranslateTransform(this.AutoScrollOffset.X, this.AutoScrollOffset.Y);
//e.Graphics.DrawEllipse(pen, recE);
//e.Graphics.DrawRectangle(pen, recR);
}
}