2017-02-28 28 views
4

我想弄清楚的时候完全Form.Load事件发生。在MSDN它是:何时显示表格?

在第一次显示表单之前发生。

但是,当显示首次形式?我的第一直觉立刻为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); 
    } 
} 

所以呢?

回答

5

OnLoad是在拨打ShowShowDialog时调用Form时所调用的方法之一。

您第一次打电话ShowShowDialogOnLoad被调用并且您的Load事件被触发。 (就像OnHandleCreated等)

2

在事件在Windows中提出的顺序窗体应用程序Application Startup and Shutdown Events

当您创建表单

代码在构造函数中立即运行,你是否永远不显示它。在Form.Load事件中运行的代码是一个事件处理程序,所以你其实可以有其他类(已经订阅的形式)运行代码有代码。