当前位置:编程学习 > C#/ASP.NET >>

窗体事件Load和Shown的区别只是一前一后触发么?但是把Shown的方法体放到Load里是不可以的吧。。。

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里可以的话,那。。。这两个方法。。。应该可以合并成一个了吧。。。 --------------------编程问答-------------------- 窗体的事件太多了,根据你的需求选择不同的事件,实现你的功能需求就行了 --------------------编程问答-------------------- 上面 两个事件的执行顺序:
1.Load
2.Actived
3.Shown --------------------编程问答--------------------
引用 2 楼  的回复:
如果把Shown的方法体放到Load里可以的话,那。。。这两个方法。。。应该可以合并成一个了吧。。。

各有用处
各司其职
比如:
你想在窗体打开后设置某个控件获得焦点
你试试下面的代码哪行有效

   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();
        }


补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,