| If Not oldpos.Equals(newpos) Then trans.GetObject(att.ObjectId, OpenMode.ForWrite) att.Position = oldpos End If End If bt.Dispose() trans.Commit() Finally trans.Dispose() End Try Next End Sub 第5步 创建命令来注册/断开事件处理函数 创建一个ADDEVENTS命令,使用+=语句来把上面的3个事件处理函数连接到各自的事件。在这个命令中,我们还应该设置全局Boolean变量: bEditCommand = False bDoRepositioning = False 创建另外一个命令REMOVEEVENTS,使用RemoveHandler语句把事件处理函数与事件断开。 第6步: 测试工程 要测试这个工程,请使用CREATE命令创建一个或多个EMPLOYEE块索引。如果你要作比较的话,你也可以插入一些非EMPLOYEE的块索引。 在命令行中键入ADDEVENTS命令来执行它。 在命令行中输入MOVE命令,然后选择你想要的块索引。注意,当MOVE命令结束时,EMPLOYEE块索引(包括属性)还留在原处。 执行REMOVEEVENTS命令,然后在试一下MOVE命令。注意,EMPLOYEE块索引现在可以被移动了。 附加的问题:添加一个附加的回调函数,当用户改变EMPLOYEE块索引的”Name”属性时,这个回调函数被触发。
上一页 [1] [2] [3] [4] |