winform窗体事件加载的顺序

我们知道对于.net 窗体程序来讲,对于属性和事件都是非常重要的。我们在后台所做的操作中相信有绝大部分都是对来响应事件。

    首先我们来看加载窗体的几个事件:

    一,窗体加载事件的顺序

    一般来说分为三个事件:1,Load 2,shown 3,VisibleChanged这三个事件。

    这三个事件根据我执行的顺序来看,Load首先加载,shown其次,最后是visiblechanged这个事件。

//程序启动时候的顺序
        //第一个执行
        private void Form1_Load(object sender, EventArgs e)
        {
            MessageBox.Show("Form1_Load");
        }

        //第二个执行
        private void Form1_Shown(object sender, EventArgs e)
        {
            MessageBox.Show("Form1_Shown");
        }

        //最后执行
        //private void Form1_Activated(object sender, EventArgs e)
        //{
        //    MessageBox.Show("Form1_Activated");
        //}

        //第三个执行
        private void Form1_VisibleChanged(object sender, EventArgs e)
        {
            MessageBox.Show("Form1_VisibleChanged");
        }
其实我们从字面上理解一可以得到这样的结果。首先要加载窗体的事件,然后窗体的显示,最后是验证控件的可用性,以便让控件准确显示在窗体上。

所以当我们发现控件的显示或者一些显示的不符合你自己预想的要求,可以考虑一下是不是自己的事件加载顺序是不是没有弄错。

二,窗体的关闭事件执行顺序
       首先会执行FormClosing,然后执行FormClosed事件。
        //程序关闭时候的顺序
        //第二个执行
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            MessageBox.Show("Form1_FormClosed");
        }
        //第一个执行
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            MessageBox.Show("Form1_FormClosing");
        }

三,按键的事件执行顺序

按键的事件执行顺序一般分为三种:1,KeyPress事件 2,KeyUp事件 3,KeyDown事件这三种。

其中上下左右这四个方向键是KeyPress事件所不能触发的。KeyPress一般是用于输入的
也就是, 字母, 数字, 符号。。。

在MSDN上讲

键事件按以下顺序发生:

  1. KeyDown

  2. KeyPress

  3. KeyUp

    但是不知道为什么在实验中keypress事件却是最先执行的。这个我到现在还没有弄懂,恳请各位赐教!现在还在研究中,期待一起成长。

 

posted on 2012-07-18 15:18  项权  阅读(1738)  评论(0编辑  收藏  举报

导航