onPain是可以控制所有子控件的pain事件,也就是你可以先取得消息。然后决定做什么:如果你针对某一个,那么一样
看它的格式:
protected override void OnPaint(PaintEventArgs e)//没有object
private void frmSWCacu_Load(object sender, System.EventArgs e)//已经有具体的对像object
看它的格式:
protected override void OnPaint(PaintEventArgs e)//没有object
private void frmSWCacu_Load(object sender, System.EventArgs e)//已经有具体的对像object
这在 Paint 中是无法做到的,在 Paint 中一般总是先由控件自身绘制结束后再调用 Paint 事件处理的。在 OnPaint 中,可以访问在类外部(本例中即 Paint 事件处理)无法访问的内部数据值来决定如何进行绘图操作。
这是最关键之处。另外,在 OnPaint 中,是在自定义的绘图操作流程之前、之后、之中调用 base.OnPaint(e),还是不调用 base.OnPaint(e),都是有讲究的。
这基于你对控件父类的绘图处理细节的了解程度,你可以通过对不同的调用方式进行测试,来发现哪一种调用方式适合于你。
{
// 绘图操作, 以不调用 base.OnPaint(e) 的方式。 ... if (this.Paint != null)
Paint(this, e);
}