onPaint vs form1_paint



我在表单上绘制所有的东西。所以我根本不需要任何控件。目前我有一个Form1_Paint方法,并在这个事件方法中绘制所有内容。

private void Form1_Paint(object sender, PaintEventArgs e)
{
    // draw something
}

我也可以覆盖OnPaint方法。

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e); // works also without this
    //draw something
}

以下哪种方法更好/应该使用?

区别几乎没有。主要区别在于,如果为同一类型创建另一个形状,则另一个表单将与第一个表单类似地绘制。对于OnPaint()方法来说,这并不是一个巨大的区别,但对于其他函数,如单击等,可以注意到您需要一个Paint事件。

这方面的一个明显例子是按钮或其他控件。每个按钮都有它的功能。如果你有一个OnMouseClick()方法,所有按钮都会执行相同的操作,但使用Paint事件,你可以自定义每个按钮的操作。OnPaint()方法,这对明星和避免事件都有好处。

最新更新