VB.NET经过长时间的发展,很多用户都很了解VB.NET回调函数了,这里我发表一下个人理解,和大家讨论讨论。创建数据库事件处理函数(VB.NET回调函数)
公司主营业务:成都做网站、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出东平免费做网站回馈大家。
#t#无论什么时候一个对象被打开并要被修改时,数据库事件处理函数会被调用。当然,如果这时我们监视的命令不是活动的,我们就应该跳过任何被这个VB.NET回调函数调用的内容。
If bEditCommand = False Then
Return
End If
同样地,如果我们监视的命令已经结束,而ObjectOpenedForModify事件被另一个VB.NET回调函数再次触发的话,而这时有对象被修改时,我们要阻止所有由这个VB.NET回调函数执行的动作。
If bDoRepositioning = True Then
Return
End If
这个VB.NET回调函数剩余部分的代码用来验证我们是否正在处理EMPLOYEE块索引。如果是的话,我们就获取它的ObjectID和位置(三维点)。下面的代码可以被粘贴到这个事件处理函数函数。
- Public Sub objOpenedForMod(ByVal o As Object, ByVal e As ObjectEventArgs)
- If bEditCommand = False Then
- Return
- End If
- If bDoRepositioning = True Then
- Return
- End If
- Dim objId As ObjectId
- objId = e.DBObject.ObjectId
- Dim trans As Transaction
- Dim bt As BlockTable
- Dim db As Database
- db = HostApplicationServices.WorkingDatabase
- trans = db.TransactionManager.StartTransaction()
- Try
- 'Use it to open the current object!
- Dim ent As Entity = trans.GetObject(objId, OpenMode.ForRead, False)
- If TypeOf ent Is BlockReference Then 'We use .NET's RTTI to establish type.
- Dim br As BlockReference = CType(ent, BlockReference)
- 'Test whether it is an employee block
- 'open its extension dictionary
- If br.ExtensionDictionary().IsValid Then
- Dim brExtDict As DBDictionary = trans.GetObject(br.ExtensionDictionary(), OpenMode.ForRead)
- If brExtDict.GetAt("EmployeeData").IsValid Then
- 'successfully got "EmployeeData" so br is employee block ref
- 'Store the objectID and the position
- changedObjects.Add(objId)
- employeePositions.Add(br.Position)
- 'Get the attribute references,if any
- Dim atts As AttributeCollection
- atts = br.AttributeCollection
- If atts.Count > 0 Then
- Dim attId As ObjectId
- For Each attId In atts
- Dim att As AttributeReference
- att = trans.GetObject(attId, OpenMode.ForRead, False)
- changedObjects.Add(attId)
- employeePositions.Add(att.Position)
- Next
- End If
- End If
- End If
- End If
- trans.Commit()
- Finally
- trans.Dispose()
- End Try
- End Sub
网页名称:实例探讨VB.NET回调函数
URL分享:http://www.shufengxianlan.com/qtweb/news31/60581.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联