2

我把我所有的东西都画在一个表格上。所以我根本不需要任何控制。目前我有一个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
}

这些方法中哪一种更好/我应该使用?

4

1 回答 1

2

差别几乎没有。主要区别在于,如果您为同一类型创建另一个表单,则另一个表单将像第一个一样绘制。对于 OnPaint() 方法,差别不大,但对于其他功能,如点击等,值得注意的是您需要一个 Paint 事件。

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

于 2019-12-04T01:50:09.833 回答