我正在创建一个 Outlook VSTO,允许用户在新约会表单的附加表单区域中输入信息。 发送约会时,我想捕获“发送”事件并对用户提供的数据执行一些检查。当此数据正常时,可以发送约会,否则必须取消发送操作。
我的代码是这样的:
Dim apptItem as Outlook.AppointmentItem
Private Sub Test_FormRegionShowing(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
apptItem = OutlookItem
AddHandler apptItem.Send, AddressOf sendAppt
End Sub
Private Sub sendAppt()
If some_test = False then
else
Cancel=True
End If
End Sub
如何将事件参数传递给 SendAppt 函数,以便我可以取消例程并阻止发送会议?
约会本身永远不会发送 - Outlook 创建一个全新的
MeetingItem
对象并发送它。您需要使用 Application.ItemSend
事件并检查 Item 参数是否指向 MeetingItem
对象。然后您可以使用 MeetingItem.GetAssociatedAppointment
检查它对应的约会。
嗯,答案相当简单,解决方案如下:
Private sub SendAppt (ByRef Cancel as Boolean)
If [some test] = False Then
Cancel = True
End If
End Sub
这将取消发送例程并阻止发送会议项目。