在做windows 窗体程序的时候,如果我们希望在窗体每次重画的时候都做一个事情,应该重写OnPaint这个虚方法。例如下面代码是在每次重画的时候都给窗体的背景刷上一个渐变的颜色。
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (this.WindowState != FormWindowState.Minimized) { ///这是一个颜色渐变的刷子 LinearGradientBrush brush = new LinearGradientBrush( ClientRectangle, Properties.Settings.Default.Color1,//来自配置的颜色 Properties.Settings.Default.Color2,//来自配置的颜色 LinearGradientMode.Vertical); Graphics graphics = this.CreateGraphics(); graphics.FillRectangle(brush, ClientRectangle); } }
那么什么时候会需要重画呢?简单地说,窗体显示出来(Show),以及激活(Activate),以及调整大小(Resize)的时候,都会自动重画。而且,完整地说,重画是控件的一个通用行为。