这个问题在这里已有答案:
我正在学习C#的各种功能,我正在尝试创建一个Windows窗体程序,您可以在其中绘制一个矩形。
我知道如果你想为父类提供一个方法,onpaint方法应该覆盖paint方法并覆盖有用。
在什么情况下你应该使用OnPaint处理程序
protected override void OnPaint(PaintEventArgs e)
而不是常规的油漆处理程序
private void Form1_Paint(object sender, PaintEventArgs e)
另一种问题是onpaint方法提供了哪些方法,form1_paint不能?
根据Broots指出的C# Winforms - Paint method questions,两种方法都没有太多优势。根据Thomas的说法,重写OnPaint可能会稍快一些,因为OnPaint不会触发Paint事件。