1. protected override void OnPaint(PaintEventArgs e )
2. {
3. Graphics gxOff; //屏幕外的图像
4.
5. if (m_bmpOffscreen == null) //要双缓冲的位图
6. {
7. m_bmpOffscreen = new Bitmap(ClientSize.Width, ClientSize.Height);
8. }
9.
10. gxOff = Graphics.FromImage(m_bmpOffscreen);
11.
12. gxOff.Clear(this.BackColor);
13. //绘制一些位图
14. gxOff.DrawImage(bmpParent, 0, 0, bmpRect, GraphicsUnit.Pixel);
15.
16. //边界矩形
17. Rectangle rc = this.ClientRectangle;
18. rc.Width--;
19. rc.Height--;
20.
21. //绘制边界
22. gxOff.DrawRectangle(new Pen(Color.Black), rc);
23. //从内存位图绘制
24. e.Graphics.DrawImage(m_bmpOffscreen, 0, 0);
25.
26. base.OnPaint( e );
27. }
原文出自:http://blog.csdn.net/zhoufoxcn/archive/2006/12/25/1461090.aspx