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^)/~ 

解决方案 »

  1.   

    如果把Shown的方法体放到Load里可以的话,那这两个方法应该可以合并成一个了吧
      

  2.   

    上面 两个事件的执行顺序:
    1.Load
    2.Actived
    3.Shown
      

  3.   

    各有用处
    各司其职
    比如:
    你想在窗体打开后设置某个控件获得焦点
    你试试下面的代码哪行有效   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();
            }