科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件.Net平台Windows Forms程序设计简介

.Net平台Windows Forms程序设计简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

微软的.Net平台堪称为新一代的互联网平台。对于技术开发人员来说,.Net平台的两大特性是非常卓越的

作者:蔡世友 来源:Yesky 2007年11月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
事件

  在Windows Forms程序中,几乎用户的大多数都将操作都将产生Windows事件,如按一个按钮引发一个点击(Click),用户移动鼠标有相应鼠标移动的事件等;有一些事件是不是用户操作产生而是系统自动产生的,如数据库链接断开、时间到达某一时刻或是使用外设时未就绪等。

  在Windows Forms中,每一个Windows控件有非常多的事件使其可以达到与用户交互,事件的监视及管理是由前面所说Application类负责的。在产生一个事件时一般经引发一系列操作,如点击“刷新”按钮使用程序重新从读取数据库中的数据、点击窗体上的关闭图标将关闭窗口或退出程序等。程序员就是通过书写事件的响应方法(即事件所引发的操作)来达到对程序的控制及交互。

  在.Net中,事件的声明是通过event(事件)关键字来声明的,事件是一个类的成员之一。

  .Net中,事件的响应及处理是通过一个新的数据类型delegate(代表)来处理的,delegate(代表)非常类似于C/C++的函数指针,但不同的是, delegate(代表)是安全的、受管理的。

  如下面分别用三种语言声明一个控件Click事件的代码:

public event EventHandler Click; [C#]

Public Event Click As EventHandler [Visual Basic]

public: __event EventHandler* Click; [C++]

  在上面的代码中,EventHandler是一个代表类型,其在.Net类库中的声明如下:

public delegate void EventHandler(object sender,EventArgs e); [C#]
Public Delegate Sub EventHandler(ByVal sender As Object,ByVal e As EventArgs) [Visual Basic]
public __gc __delegate void EventHandler(Object* sender,EventArgs* e); [C++]

  事件响应方法

  由于事件是解释及管理是由Application对象进行的,程序员不需要知道用户何时响应事件或者是响应了什么事件,只需要为事件添加响应方法即可。通过使用delegate(代表),你可以使用“+=”(加等于)操作符非常容易地为.Net类中的一个事件添加一个甚至多个响应方法,还可以通过非常简单的“-=”(减等于)操作符取消这些响应方法。如下面,我们为一个按钮的Click事件添加响应方法的代码:

button1.Click += new System.EventHandler(MyMethod);

  其中,MyMethod函数的定义如下:

void MyMethod(object sender, System.EventArgs e);

  这样当用户点击按钮或者是其它方法引发其Click事件时,MyMethod函数中的代码将执行。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章