Load:在第一次显示窗体前发生。
Shown:发生,只要窗体首次显示。
第一个窗体显示,Shown 事件仅引发;随后,最小化、最大化,还原,隐藏,显示或无效和重新绘制不会引发此事件。
http://technet.microsoft.com/zh-cn/library/system.windows.forms.form.shown(v=vs.110).aspx
show:向用户显示具有指定所有者的窗体。
问:事件Load和Shown 除了一前一后触发,还有其他区别么?如果事件Load和Shown 的区别只是一前一后触发,那么把Shown的方法体放到Load里不就可以啦?
事实不是酱紫滴,这到底是为什么捏???\(^o^)/~
Shown:发生,只要窗体首次显示。
第一个窗体显示,Shown 事件仅引发;随后,最小化、最大化,还原,隐藏,显示或无效和重新绘制不会引发此事件。
http://technet.microsoft.com/zh-cn/library/system.windows.forms.form.shown(v=vs.110).aspx
show:向用户显示具有指定所有者的窗体。
问:事件Load和Shown 除了一前一后触发,还有其他区别么?如果事件Load和Shown 的区别只是一前一后触发,那么把Shown的方法体放到Load里不就可以啦?
事实不是酱紫滴,这到底是为什么捏???\(^o^)/~
1.Load
2.Actived
3.Shown
各司其职
比如:
你想在窗体打开后设置某个控件获得焦点
你试试下面的代码哪行有效 private void Form1_Load(object sender, EventArgs e)
{
textBox2.Focus();
} private void Form1_Shown(object sender, EventArgs e)
{
textBox2.Focus();
}又比如
你虽然在主窗体完全打开后
才打开登陆窗体
你试试下面的代码哪个更好 private void Form1_Load(object sender, EventArgs e)
{
LoginForm frm = new LoginForm();
frm.ShowDialog();
} private void Form1_Shown(object sender, EventArgs e)
{
LoginForm frm = new LoginForm();
frm.ShowDialog();
}