Autodesk官方最新的.NET教程(七)(vb.net版)

本文介绍了如何在VB.NET中处理AutoCAD事件,利用事件处理函数控制AutoCAD的行为。通过创建事件处理函数,使用AddHandler和RemoveHandler语句连接和断开事件,以及在事件处理函数中控制AutoCAD命令如MOVE的执行,防止EMPLOYEE块索引被移动。
摘要由CSDN通过智能技术生成

第7章 事件

本章将讨论AutoCAD中的事件。我们将介绍事件处理函数的使用,特别是监视AutoCAD命令的事件处理函数和监视被AutoCAD命令修改的对象的事件处理函数。在解释怎样实现AutoCAD的事件处理之前,我们将首先简要地讨论一下.NET中的事件。

 

第一部分  VB.NET中的事件

事件只是用来通知一个行为已经发生的信息。在ObjectARX中,我们使用反应器(reactor)来处理AutoCAD的事件。而在AutoCAD .NET API中,ObjectARX反应器被换成了事件。

事件处理函数(或者叫回调函数)是用来监视和反馈程序中出现的事件。事件可以以不同的形式出现。

在介绍AutoCAD .NET API中的事件之前,让我们先来简单地了解一下代理。

 

1a 部分  代理

代理是一个存储方法索引的类(概念与函数指针类似)。代理对方法是类型安全的(与C中的函数指针类似)。代理有特定的形式和返回类型。代理可以封装符合这种特定形式的任何方法。

代理的一个用途就是作为产生事件的类的分发器。事件是.NET环境中第一级别的对象。虽然VB.NET把事件处理的许多细节给隐藏掉了,但事件总是由代理来实现的。事件代理可以多次调用(就是它们可以存储多于1个的事件处理方法的索引)。它们保存了用于事件的一个注册事件处理的列表。一个典型的代理有以下的形式:

Public Delegate Event (sender as Object, e as EventArgs)

 

第一个参数sender表示引发事件的对象。第二个参数e是一个EventArgs参数(或者是一个派生的类),这个对象通常包含用于事件处理函数的数据。

 

第1b部分 AddHandlerRemoveHandler语句

 

要使用事件处理函数,我们必须把它与事件联系起来。这要通过使用AddHandler语句。AddHandlerRemoveHandler允许你在运行时连接、断开或修改与事件联系的处理函数。

当我们使用AddHandler语句时,我们要确定事件引发者的名字,并要使用AddressOf语句来确定事件处理函数,例如:

AddHandler MyClass1.AnEvent, AddressOf EHandler

 

前面我们说过要使用RemoveHandler语句从事件处理函数中断开事件(移除联系)。语法如下所示:

RemoveHandler MyClass1.AnEvent, AddressOf EHandler

 

第2部分  处理.NET中的AutoCAD事件

 

ObjectARX中,我们使用反应器来封装AutoCAD事件。在AutoCAD .NET API中,我们可以使用事件来代替ObjectARX反应器。

通常,处理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值