什么时候显示表格?

时间:2017-02-28 08:07:26

标签: c# forms winforms

我想知道究竟何时发生Form.Load事件。在MSDN它是sais:

  

在首次显示表单之前发生。

但是第一次显示表单时?我的第一直觉就是在InitializeComponent()之后,但是当我尝试使用以下代码时,MessageBox显示5,即使该值是在InitializeComponent()之后设置的,所以它不是紧接着InitializeComponent()

public partial class Form1 : Form
{
    private int number;

    public Form1()
    {
        InitializeComponent();

        number = 5;
    }

    public void Form_Load(object sender, EventArgs e)
    {
        MessageBox.Show(number);
    }
}

那么什么时候发生?

2 个答案:

答案 0 :(得分:5)

OnLoad是您在Show上致电ShowDialogForm时调用的方法之一。

第一次拨打ShowShowDialog时,系统会调用OnLoad并触发您的Load事件。 (就像OnHandleCreated等)

答案 1 :(得分:2)

阅读https://msdn.microsoft.com/en-us/library/86faxx0d(v=vs.110).aspx

这解释了表单启动和关闭的顺序。

简而言之,按顺序触发了许多事件 - 例如,创建... load ... activate..shown ..