我想知道究竟何时发生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);
}
}
那么什么时候发生?
答案 0 :(得分:5)
OnLoad
是您在Show
上致电ShowDialog
或Form
时调用的方法之一。
第一次拨打Show
或ShowDialog
时,系统会调用OnLoad
并触发您的Load
事件。 (就像OnHandleCreated
等)
答案 1 :(得分:2)
阅读https://msdn.microsoft.com/en-us/library/86faxx0d(v=vs.110).aspx
这解释了表单启动和关闭的顺序。
简而言之,按顺序触发了许多事件 - 例如,创建... load ... activate..shown ..