VB.NET有很多值得学习的地方,这里我们主要介绍处理VB.NET AutoCAD事件,包括介绍AutoCAD数据库等方面。在ObjectARX中,我们使用反应器来封装VB.NET AutoCAD事件。在AutoCAD.NET API中,我们可以使用事件来代替ObjectARX反应器。
通常,处理VB.NET AutoCAD事件的步骤如下:
1. 创建事件处理函数
当一个事件发生时,事件处理函数(或称为回调函数)被调用。任何我们想要处理的回应VB.NET AutoCAD事件的动作都在事件处理函数中进行。
例如,假定我们只想通知用户一个AutoCAD对象已被加入。我们可以使用AutoCAD数据库事件”ObjectAppended”来完成。我们可以编写回调函数(事件处理函数)如下:
- Sub objAppended(ByVal o As Object, ByVal e As ObjectEventArgs)
- MessageBox.Show("ObjectAppended!")
- '在这里加入一些代码
- End Sub
函数中的***个参数代表AutoCAD数据库。第二个参数代表ObjectEventArgs类,它可能包含对处理函数有用的数据。
#t#2. 把事件处理函数与事件联系起来
为了开始监视动作,我们必须把事件处理函数与事件联系起来。在这里,当一个对象加入到数据库时,ObjectAppended事件将会发生。但是,事件处理函数不会响应这个事件,除非我们把它与这个事件联系起来,例如:Dim db As Database
db = HostApplicationServices.WorkingDatabase()
AddHandler db.ObjectAppended, New ObjectEventHandler(AddressOf objAppended)
3. 断开事件处理函数
要终止监视一个动作,我们必须断开事件处理函数与事件的联系。当对象被加入时,我们想要停止通知用户这个事件,我们要断开事件处理函数与事件ObjectAppended的联系。
- RemoveHandler db.ObjectAppended, AddressOf objAppended