事件是什么??    

        .net把处理windows发送给应用程序的消息封装为事件。如果需要响应某个消息 ,就应处理对应的事件。一个常见的例子是用户单击了窗体的按钮后,windows就会给按钮消息处理程序(也就windows过程或者WndProc)发送一个WM_MOUSECLICK消息。对于.net程序员而言,这就是按钮的click事件。

      除此之外,还可以把事件用作对象间的通信介质。

      委托就用作应用程序接收到消息时封装事件的方式。

 

      从接收器的角度认识事件    

  

      首先必须知道几个概念:      

      事件接收器:发生某些时间时被通知的任何应用程序、对戏那个或者组件。 

      事件发送器:发送器的作用是引发事件,发送器可以是应该用程序中的另一个对象或程序集,在系统事件中,例如按下鼠标或者键盘,发送器就是.net运行库。

      注意:事件发送器并不知道接收器是谁(关键)。由于发送器对接收器的一无所知,所以无法设置二者之间的引用关系,而是使用委托作为中介。发送器定义了接收器要使用的委托,接收器将事件处理注册到事件中。连接事件处理程序的过程称为封装事件。例如封装click事件的代码:

             button1.Click += new EventHandler(button1_Click);

             //button1.Click += button1_Click;  //使用了委托推断

      编程技巧:在vs中注意在输入+=运算符之后,只需按下Tab键2次,编辑器就会完成剩余的输入工作。

      编程习惯:按照约定,事件处理程序应遵循“object_event”的命名约定。object就是引发事件的对象,event就是被引发的事件。

     下面就是编写事件接收器了(button1_Click事件),如:

        void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("hkdh");
        }

      在.net编程中,编写事件接收器常常比编写事件发送器要频繁的多。至少在windows用户界面上,ms已经编写了所有需要的事件发生器(它们在.net基类中,在 windows.forms的命名空间中)。

      对于事件发生器的编写,有兴趣的可以参看下《C#高级编程》这本书。

posted on 2009-04-28 09:46  龙潜冰风悄林  阅读(294)  评论(0)    收藏  举报